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


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-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру. Полезно для тестирования / отладки программного обеспечения, генерирующего электронную почту.


+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". Работает как шарм.


3
Отлично, нулевая установка ... отлично работает для меня. Спасибо!
WildJoe

Я использую SmtpClient в веб-приложении .Net с определенным хостом smtp, установленным во время компиляции. Я не вижу никаких изменений в поведении, если добавить это в конец моего файла web.config.

4
Ага! Выдает исключение, если вы не создали папку заранее. Хороший трюк!

1
Замечательный трюк с нулевой установкой.
Майк Крюгер,

У нас была такая же проблема при работе со стеком .NET - мы создали эту службу для решения этой проблемы
isNaN1247


14

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


9

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

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


на 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-сервер, который вы можете использовать для приложений модульного тестирования, отправляющих почту.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.