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

129

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

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

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

Но ведь такой инструмент уже существует? Как вы тестируете отправку электронной почты?

Патрик МакЭлхейни
источник
42
@casperOne Зачем закрывать этот вопрос три с половиной года спустя? Это простая проблема с несколькими полезными решениями. Никаких дебатов, опросов или расширенных обсуждений не было. Если эта страница исчезнет из результатов поиска Google, сделает ли это Интернет лучше?
Patrick McElhaney
1
Это вопрос о списке покупок / рекомендации продукта (а также по своей сути субъективный и открытый вопрос: «как вы проверяете отправку электронной почты»), ни один из которых больше не подходит для сайта.
casperOne
3
@casperOne Тогда перефразируйте вопрос, чтобы он не был субъективным. Я не искал лучший продукт в категории X. Я спрашивал, существует ли категория X. В любом случае, вы не ответили на мой вопрос. Убедите меня, что удаление этой страницы сделает Интернет лучше, и я удалю ее сам.
Патрик МакЭлхейни
12
@casperOne Я столкнулся с этим вопросом от Google, когда спрашивал о параметрах на основе Windows (в отличие от параметров Linux, с которыми я сталкивался ранее). Я нашел все ссылки полезными. Эту веб-страницу будет очень не хватать.
justin.lovell 03
5
Ну, я просто искал инструмент почтового сервера Windows, который просто принимает почту с локального хоста, и я нашел его простым и легким по этому вопросу. Проголосованный ответ - это все, что ищут большинство людей, поэтому я не понимаю, почему вы хотите закрыть это, поскольку он делает то, что ожидает большинство людей.
sveri 05

Ответы:

84

Несколько недель назад я столкнулся с той же проблемой и написал следующее: http://smtp4dev.codeplex.com

Совместимый с Windows 7 / Vista / XP / 2003/2010 фиктивный SMTP-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру. Полезно для тестирования / отладки программного обеспечения, генерирующего электронную почту.

rnwood
источник
+1 Немного глючит, но overrall делает то, что нужно. Спасибо!
Дэвид
4
Приятно, когда он работает, но очень опасен.
олефевр 07
Это выглядит как блестящее приложение, но, к сожалению, оно вылетает у меня каждый раз при получении почты (запуск smtp4dev на win7, отправка из SQL Server Database Mail Test E-mail script)
Jona
Просто загрузил это, чтобы проверить код отправки электронной почты через sharepoint. У меня не было установленного SMTP на моем виртуальном компьютере, поэтому это приложение работало как шарм. Престижность!
Райан
2
Как бы то ни было, в Windows 7 - 64-битной версии smtp4dev не работает, но papercut.codeplex.com работает . Письма были созданы с использованием JavaMail.
Ашутош Джиндал,
73

Несколько лет назад я наткнулся на следующее решение для платформы .NET .

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

Просто поместите приведенный выше код в свой App.config или Web.config. Когда вы отправляете сообщение сейчас, оно будет сохранено в виде файла в каталоге, который вы указали как "pickupDirectoryLocation". Работает как шарм.

Joop
источник
3
Отлично, нулевая установка ... отлично работает для меня. Спасибо!
WildJoe
Я использую SmtpClient в веб-приложении .Net с определенным хостом smtp, установленным во время компиляции. Я не вижу никаких изменений в поведении, если добавить это в конец моего файла web.config.
4
Ага! Выдает исключение, если вы не создали папку заранее. Хороший трюк!
1
Замечательный трюк с нулевой установкой.
Майк Крюгер,
У нас была такая же проблема при работе со стеком .NET - мы создали эту службу для решения этой проблемы
isNaN1247
18

Теперь существует веб-версия Papercut.

Также мне подходит версия на основе приложения.

Адам Сибридж
источник
14

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

Fredou
источник
9

Это похоже на smtp4dev, за исключением того, что он реализован в java, поэтому он работает для разработчиков, отличных от Windows.

http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp

txyoji
источник
на Mac, чтобы использовать порт 25, выполните следующую команду в терминале в том же каталоге, что и загружаемый файл:sudo java -jar DevNullSmtp.jar
Брэд Паркс,
6

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

Аликс Аксель
источник
Наконец-то я решил попробовать это. К сожалению, оба продолжают падать.
Патрик МакЭлхейни,
4
Только что попробовал Papercut. Отлично работает и имеет бонусную возможность просматривать электронную почту прямо в пользовательском интерфейсе.
Джереми Вибе,
1
Papercut работает. Жаль, что это только Windows. Хотел бы увидеть эту кросс-платформу.
Вим Деблаув
6

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

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

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

Адриан Кларк
источник
1
Точно так же. Просто работает.
Adaddinsane
5

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

Persimmonium
источник