Как разработать и протестировать приложение, отправляющее электронные письма (без заполнения почтового ящика с тестовыми данными)?

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

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

Я думал о создании фиктивного 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-сервер без фактического доставки сообщений.

Ответ 6

Существует также Papercut и Neptune, слишком плохо ни один из них не может быть запущен переносимым способом.

Ответ 7

Я использую "Test Mail Server Tool" из ToolHeap в течение многих лет.

http://www.toolheap.com/test-mail-server-tool/

Это простое приложение, которое работает в вашем системном трее и отправляет электронные письма в папку. Он также может быть настроен на открытие каждого сообщения электронной почты в почтовой программе по умолчанию.

Ответ 8

Если вы используете java, я бы использовал Wiser: Wiser - это простой SMTP-сервер, который вы можете использовать для тестирования модулей, отправляющих почта.