Поддельный SMTP-сервер для тестирования электронной почты

Перевод статьи «Fake SMTP Email Server for Testing».

Небольшая предыстория…

Мне нужно было протестировать, как работает функция отправки писем в моем приложении через SMTP-сервер.

И вот что я придумал!

********

Сначала я пробовал использовать разные бесплатные онлайн-сервисы, такие, как WPOven и SendInBlue (Brevo), но ни один из них не подошел для моих нужд.

В итоге я решил настроить локальный поддельный SMTP-сервер с помощью smtp4dev (программа, которая имитирует работу почтового сервера на вашем компьютере). В этой статье я расскажу вам, как это сделать, а также поделюсь нюансами, с которыми столкнулся.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание

Установка

Для начала, нужно учесть, что smtp4dev не поддерживается на Mac. Если вы работаете на Mac, вам нужно сначала установить виртуальную машину с Windows или Linux, либо использовать сервер AWS EC2. 

Скачайте версию, соответствующую вашей операционной системе. В моем случае это бинарная автономная версия Windows x64 – Server edition, поэтому не могу гарантировать, что все остальные версии будут работать точно так же.

название установочного файла виртуальной машины windows

Перед тем, как запускать файл Rnwood.Smtp4dev.exe, обязательно распакуйте архив. Если вы попытаетесь запустить его без распаковки, программа не запустится.

После распаковки зайдите в папку и дважды щелкните на файл Rnwood.Smtp4dev.exe. Вы должны увидеть следующее:

информация после успешной распаковки файла

Программа запустит SMTP-сервер, который будет “слушать” на localhost:25. Также вы сможете открыть веб-интерфейс в вашем браузере по адресу localhost:5000.

Настройка

Настройка порта SMTP-сервера

Если вы хотите, чтобы сервер использовал другой порт, вы можете сделать это двумя способами:

  • Установить его напрямую, отредактировав файл appsettings.json.
  • Или изменить порт через веб-интерфейс, нажав на иконку шестеренки.
настройка порта

Я использую порт 25 по умолчанию.

Настройка почтового ящика

Теперь нужно создать почтовый ящик, чтобы отправлять туда тестовые письма. Для этого:

  • Зайдите в веб-интерфейс на localhost:5000.
  • Нажмите на шестеренку в правом верхнем углу и выберите Mailboxes.
  • Введите любой фиктивный email-адрес, на который вы будете отправлять письма (например, test@example.com).
  • Нажмите Save
настройка почтового ящика

Настройка приложения для тестирования

Чтобы наше приложение могло отправлять письма через этот имитированный сервер, нужно настроить следующие параметры:

  • Имя хоста SMTP: Судя по документации, localhost должен работать. Но у меня он не сработал. Вместо этого используйте свой IP-адрес.
  • Порт SMTP: Укажите порт, который вы настроили ранее (по умолчанию это 25).
  • SSL/TLS: Выключите.
  • Аутентификация: Выключите. Таким образом, не нужно будет вводить логин и пароль.  Вы можете включить опцию “Требовать аутентификацию (SMTP)” и создать пользователя, но для простоты не будем этого делать.

Тестирование

Благодаря этому замечательному инструменту мы можем протестировать отправку писем в нашем приложении.

Вы можете проверить успешную отправку письма из приложения двумя способами:

  1. В терминале запустите файл .exe.
пример сообщения после запуска файла
  1. Запустите через веб-интерфейс. В разделе Messages выберите почтовый ящик, созданный ранее, и вы увидите письмо, которое мы только что отправили.
тестирование отправки сообщения

Заключение

Вот и все! Теперь вы можете использовать smtp4dev для тестирования отправки писем в вашем приложении, не беспокоясь о настройке реальных серверов.

Удачного тестирования!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *