Я пишу программу, которая будет рассылать отчеты по электронной почте многим (~ 100) клиентам, которые я хочу протестировать, прежде чем спамить всем.
Я хочу провести тестовый прогон с моими производственными данными и фактически отправить сообщения на SMTP-сервер, но я не хочу, чтобы SMTP-сервер действительно доставлял сообщения. Я хочу, чтобы сервер действовал как настоящий SMTP-сервер с точки зрения моего приложения, но вместо того, чтобы доставлять сообщения, я просто хочу, чтобы он сохранял сообщения и регистрировал, что произошло.
Есть ли SMTP-сервер, специально разработанный для тестирования?
Кто-нибудь знает, как настроить exim или postfix, чтобы они вели себя так, как я описал выше
Что вы используете для тестирования массовой рассылки электронной почты?

Я лично изменяю адреса электронной почты для проверки, я отправляю их на свою фиктивную учетную запись, таким образом я могу проверить не только то, что они отправили, но и то, что они отображаются в правильном формате.
В java вы можете использовать болван
Его легко использовать, и вы можете проверить каждый аспект перехвата электронной почты.
Это реализация SMTP-сервера Java, предназначенная для модульного тестирования. (Просто убедитесь, что вы перенаправляете свою электронную почту на машину, на которой запущен дамбстер ...)
Я только что нашел другую альтернативу, которая делает почти то же самое: Гринмайл
Greenmail также поддерживает POP3, IMAP с SSL, так что вы можете протестировать свой клиент на них.
Хороший! Спасибо! А как насчет того, чтобы принять этот ответ как лучший?
dumbster, похоже, не работает, но спасибо за письмо! У него есть standalone.jar, который запускает почтовый сервер локально, именно то, что мне нужно!
Я обязательно попробую greenmail @hipokito
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-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру.
Не удовлетворившись найденными мною решениями, я написал разработкаSMTP, простой в использовании, 100% Java -> кроссплатформенный.
Поддерживает запись писем в файл, пересылку писем или просто их распечатку на stdout.
Post Hoc - это чистое приложение Java, которое выглядит точно так же, как SMTP-сервер для приложения, которое вы тестируете, но оно просто собирает все сообщения электронной почты и позволяет вам проверять их с помощью веб-интерфейса.
В свободном доступе по адресу: Post Hoc GitHub Site
Для получения дополнительной информации: PostHoc: Тестирование приложений, отправляющих электронную почту
Если вы хотите вручную проверить отправку электронного письма и наличие в шаблоне электронного письма нужного типа HTML и CSS, которые вы ожидаете, я бы порекомендовал maildev https://www.npmjs.com/package/maildev. Вы можете установить и запустить его как модуль узла, а также как контейнер докера! Я обнаружил, что это очень удобно для базового тестирования электронных писем.
Ух ты! Большое спасибо. Просто хочу, я всегда нуждался!