Как разработать и протестировать приложение, отправляющее электронные письма (без заполнения почтового ящика с тестовыми данными)?
У меня есть много приложений, которые отправляют электронную почту. Иногда это одно или два сообщения за раз. Иногда это тысячи сообщений.
В разработке я обычно тестирую, заменяя свой собственный адрес для любых адресов получателей. Я уверен, что все остальные делают, пока они не устанут и не найдут лучшего решения.
Я думал о создании фиктивного SMTP-сервера, который просто ловит сообщения и выгружает их в базе данных SQLLite или в файле mbox или что-то еще.
Но наверняка такой инструмент уже существует? Как вы проверяете отправку электронной почты?
Ответы
Ответ 1
Я столкнулся с той же проблемой несколько недель назад и написал следующее: http://smtp4dev.codeplex.com
Совместимый с Windows 7/Vista/XP/2003/2010 фиктивный SMTP-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник/структуру. Полезно для тестирования/отладки программного обеспечения, которое генерирует электронную почту.
Ответ 2
Несколько назад я встретил следующее решение для платформы .NET.
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
</smtp>
</mailSettings>
</system.net>
Просто разместите вышеуказанный код в App.config или Web.config. Когда вы отправляете сообщение, оно будет сохранено в виде файла в каталоге, который вы указали как "pickupDirectoryLocation". Работает как шарм.
Ответ 3
В настоящее время существует веб-версия Papercut.
Также версия для приложений работает отлично для меня.
Ответ 4
Dumbster может быть то, что вы хотите. Это фальшивый SMTP-сервер с открытым исходным кодом, написанный на Java. Он заменяет реальный SMTP-сервер, поэтому вы можете протестировать свое приложение в реалистичной настройке, без какого-либо кода. Вы можете убедиться, что правильные сообщения отправляются на SMTP-сервер без фактического доставки сообщений.
Ответ 5
Это похоже на smtp4dev, за исключением реализованного в java, поэтому он работает для разработчиков без окон.
http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp
Ответ 6
Существует также Papercut и Neptune, слишком плохо ни один из них не может быть запущен переносимым способом.
Ответ 7
Я использую "Test Mail Server Tool" из ToolHeap в течение многих лет.
http://www.toolheap.com/test-mail-server-tool/
Это простое приложение, которое работает в вашем системном трее и отправляет электронные письма в папку. Он также может быть настроен на открытие каждого сообщения электронной почты в почтовой программе по умолчанию.
Ответ 8
Если вы используете java, я бы использовал Wiser: Wiser - это простой SMTP-сервер, который вы можете использовать для тестирования модулей, отправляющих почта.
Ответ 9
Вы также можете использовать netDumbster.
http://netdumbster.codeplex.com/