Метод тестирования электронной почты

Я пишу программу, которая будет рассылать отчеты по электронной почте многим (~ 100) клиентам, которые я хочу протестировать, прежде чем спамить всем.

Я хочу провести тестовый прогон с моими производственными данными и фактически отправить сообщения на SMTP-сервер, но я не хочу, чтобы SMTP-сервер действительно доставлял сообщения. Я хочу, чтобы сервер действовал как настоящий SMTP-сервер с точки зрения моего приложения, но вместо того, чтобы доставлять сообщения, я просто хочу, чтобы он сохранял сообщения и регистрировал, что произошло.

Есть ли SMTP-сервер, специально разработанный для тестирования?

Кто-нибудь знает, как настроить exim или postfix, чтобы они вели себя так, как я описал выше

Что вы используете для тестирования массовой рассылки электронной почты?

Отправка электронной почты с помощью Python менее чем за 1 минуту
Отправка электронной почты с помощью Python менее чем за 1 минуту
Отправка электронной почты с помощью Python - это удобный способ автоматизировать процесс отправки электронных писем. Это может быть полезно для...
27
0
10 612
14

Ответы 14

Я лично изменяю адреса электронной почты для проверки, я отправляю их на свою фиктивную учетную запись, таким образом я могу проверить не только то, что они отправили, но и то, что они отображаются в правильном формате.

В java вы можете использовать болван

Его легко использовать, и вы можете проверить каждый аспект перехвата электронной почты.

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


Я только что нашел другую альтернативу, которая делает почти то же самое: Гринмайл

Greenmail также поддерживает POP3, IMAP с SSL, так что вы можете протестировать свой клиент на них.

Ух ты! Большое спасибо. Просто хочу, я всегда нуждался!

Hates_ 29.10.2008 01:48

Хороший! Спасибо! А как насчет того, чтобы принять этот ответ как лучший?

Brian Clozel 25.02.2009 15:35

dumbster, похоже, не работает, но спасибо за письмо! У него есть standalone.jar, который запускает почтовый сервер локально, именно то, что мне нужно!

hipokito 15.06.2018 12:00

Я обязательно попробую greenmail @hipokito

Gaurav 22.02.2019 21:40

http://skaraarslan.blogspot.com/2008/02/how-to-check-email-works-without-using.html

(это предполагает, что вы используете .net для отправки электронных писем)

В моем офисе есть сервер, который настроен на постоянную отправку всей входящей почты на один адрес, независимо от того, кому она адресована. Мы просто направляем все наши тестовые среды на этот сервер и наблюдаем, как заполняется почтовый ящик QA. Я не знаю, что это за сервер, но, вероятно, это кто-то нашел что-то с открытым исходным кодом.

Учитывая, что вы упоминаете exim и postfix (которые я считаю чем-то вроде unix), этот ответ может быть не так полезен, как мог бы, но посмотрите Нептун. Это поддельный SMTP-сервер, предназначенный для автоматического тестирования. Если у вас есть запасная коробка для окон, вы можете поставить на нее Neptune, а затем настроить свое приложение для отправки «через» сервер Neptune.

В Sendmail есть тестовый режим.

Вы просто вызываете sendmail с параметром -bt. Например:

/usr/lib/sendmail -bt -Ciu-testconfiguration.cf

Имейте в виду, что в этом методе Sendmail требует специальной настройки правил перезаписи. Вы должны понимать, как Sendmail перезаписывает адреса, чтобы правильно создать файл .cf для тестового режима.


Обновлено: см. Эту статью: http://ussg.iu.edu/usail/mail/debugging/

Для .NET я настраиваю файл конфигурации для доставки почты в папку, после чего вы можете выполнить автоматический тест для проверки каталога и файлов.

<system.net>
 <mailSettings>
  <smtp deliveryMethod = "SpecifiedPickupDirectory">
   <specifiedPickupDirectory pickupDirectoryLocation = "c:\pickupDirectory"/>
  </smtp>
 </mailSettings>
</system.net>

Exim можно настроить так, чтобы он принимал входящую почту, но не доставлял ее. Найдите в документации ключевые слова queue_only и queue_only_file.

«Фреймворк Wiser для модульного тестирования почты»

Я слышал о нескольких других разработчиках, которые перешли от Dumbster к Wiser, и также перенесли мой тестовый код. Один из компонентов Java, над которым я работал, отправляет тысячи электронных писем в день, и я написал модульные тесты для различных шаблонов и сценариев электронной почты, используя Dumbster и Wiser. Я предпочитаю Wiser.

Фрагменты с сайта Wiser (http://code.google.com/p/subethasmtp/wiki/Wiser):

Wiser является разумной заменой Dumbster и построен на основе библиотеки SubEtha SMTP Java, которая позволяет вашему Java-приложению получать почту SMTP с помощью простого и понятного API.

Хорошая программа для тестирования электронной почты - smtp4dev (только для Windows).

Это фиктивный SMTP-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру.

http://smtp4dev.codeplex.com/

Не удовлетворившись найденными мною решениями, я написал разработкаSMTP, простой в использовании, 100% Java -> кроссплатформенный.

Поддерживает запись писем в файл, пересылку писем или просто их распечатку на stdout.

Post Hoc - это чистое приложение Java, которое выглядит точно так же, как SMTP-сервер для приложения, которое вы тестируете, но оно просто собирает все сообщения электронной почты и позволяет вам проверять их с помощью веб-интерфейса.

В свободном доступе по адресу: Post Hoc GitHub Site

Для получения дополнительной информации: PostHoc: Тестирование приложений, отправляющих электронную почту

Если вы хотите вручную проверить отправку электронного письма и наличие в шаблоне электронного письма нужного типа HTML и CSS, которые вы ожидаете, я бы порекомендовал maildev https://www.npmjs.com/package/maildev. Вы можете установить и запустить его как модуль узла, а также как контейнер докера! Я обнаружил, что это очень удобно для базового тестирования электронных писем.

Другие вопросы по теме