2009-08-30 14 views
36

Я ищу бесплатный тестовый smptp-сервер, который может сохранять электронные письма в файлах для моих тестов разработки. Поскольку моя среда разработки - это окна, я предпочитаю тестовый почтовый сервер для работы в Windows, но я могу рассмотреть возможность установки любых других альтернатив linux.разработка smtp-сервера для окон

ответ

35

Есть несколько:

  • SMTP Impostor (ранее Antix SMTP Server), NuGet package - выглядит очень хорошо
  • Dumbster - поддельный сервер SMTP по лицензии Apache

Или вы можете также установить в вашем web.config просто сохранить электронные письма в файловой системе (вариант конфигурации того, что «шелковистый» предложил в коде):

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory 
      pickupDirectoryLocation="c:\temp\mails\"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

Марк

+0

antix автономная установка была точным решением для моей проблемы. Это лучше, так как у меня возникла проблема с сервером отладки python, который не подходит для кодированных сообщений UTF-8. – Tolga

+0

Последний вариант работал для меня, я еще больше установил [EML Reader] (http://www.emlreader.com/) для лучшего просмотра. –

11

- Edit:

Этот совет действует только, если вы используете .NET

Проверить this аут. Если вы установите его надлежащим образом, он просто будет хранить ваши письма на диске :)

SmtpClient client = ...; 
client.PickupDirectoryLocation = @"c:\foo\emails\"; //" 
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; 

- Редактирование

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

- Редактирование

Для полноты картины, поскольку marc_s показывает ниже, вы можете установить это в конфиги красиво через:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory 
      pickupDirectoryLocation="c:\foo\emails\" /> 
     </smtp> 
    </mailSettings> 
</system.net> 
+0

Это, конечно, предполагает, что OP использует C# для написания своего программного обеспечения. –

+1

Да. Вы делаете справедливую точку зрения Мартина, я предположил, что он использует .NET, но теперь заметил, что он не указан в исходном сообщении. Моя ошибка для того, чтобы быть в состоянии «.NET» :) –

+0

Вы можете настроить это, не изменяя код в файле конфигурации приложения: 'confguration \ system.net \ mailSettings \ smtp'. – Thorarin

5

Питон smtpd модуль имеет DebuggingServer, который печатает все сообщения на стандартный вывод. Если вы перенаправите их в файл, вы должны сделать это.

+0

У меня уже установлен python, поэтому мне потребовалось несколько минут, чтобы найти пример, а затем реализовать сервер отладки. У меня есть небольшая проблема с отображением электронных писем UTF-8. Когда я пытаюсь отправить электронную почту через gmail, нет никаких проблем с кодированными сообщениями UTF-8, однако модуль smtpd python не печатает символы не-ascii правильно. У вас есть предложения по этому вопросу? – Tolga

+0

В общем, электронные письма должны быть закодированы с использованием кодировки с кавычками или base64 и переданы только в 7-разрядной кодировке ASCII (ищите MIME RFC в Google). Хотя некоторые расширения SMTP-сервера позволяют отправлять 8-битные электронные письма, это не то, на что вы должны рассчитывать. –

+0

Официальный способ Python обрабатывать сообщения MIME - это пакет электронной почты. Однако выполнение этого может быть чрезмерным - поэтому я скорее рекомендую писать все сообщения в файле mbox (либо напрямую добавляя его, либо через модуль почтового ящика), а затем открывать модуль в Thunderbird. –

23

Я знаю, что это старый пост, однако я также знаю о http://smtp4dev.codeplex.com/, который я хотел бы также рекомендовать. Он сидит на панели задач и затем появляется, когда вы отправляете ему электронные письма.Это позволяет вам внимательно изучить электронную почту.

5

Для этого мы использовали Mailtrap. Это дает вам удаленную учетную запись smtp-сервера и прямой доступ ко всем письмам в ней. Таким образом, вы просто вводите заданные учетные данные smtp в своем приложении, и после этого все электронные письма, отправленные вашей системой, будут видны на mailtrap. И вы можете легко просмотреть исходный код почты и загрузить его в свою локальную систему. Вы можете увидеть пример here

На mailtrap вы можете иметь столько smtp-аккаунтов, сколько хотите (другая учетная запись для разных приложений или другого приложения) Также вы можете управлять доступом к своей учетной записи (так что только доверенные люди будут размещать ваши электронные письма), и вы можете перенаправить некоторые электронные письма на реальные адреса электронной почты.

2

Papercut (http://papercut.codeplex.com/discussions) является самым простым и элегантным до сих пор. Простой exe-файл, который прослушивает порт 25 и отображает сообщения электронной почты.

+0

Пожалуйста, перечитайте вопрос: «Я ищу бесплатный тестовый smptp-сервер, который может сохранять электронные письма в файлах **» - Поддерживает ли PaperCut это? – Kev

+0

Papercut - ужасный инструмент, он не может обрабатывать несколько сообщений одновременно. Я бы рекомендовал избежать этого. –

+0

Я только что попробовал Papercut, и вы можете щелкнуть правой кнопкой мыши по почте и просмотреть сохраненный файл. Это хорошее программное обеспечение в моих книгах. – TheLegendaryCopyCoder

 Смежные вопросы

  • Нет связанных вопросов^_^