Я ищу бесплатный тестовый smptp-сервер, который может сохранять электронные письма в файлах для моих тестов разработки. Поскольку моя среда разработки - это окна, я предпочитаю тестовый почтовый сервер для работы в Windows, но я могу рассмотреть возможность установки любых других альтернатив linux.разработка smtp-сервера для окон
ответ
Есть несколько:
- 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>
Марк
- 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>
Это, конечно, предполагает, что OP использует C# для написания своего программного обеспечения. –
Да. Вы делаете справедливую точку зрения Мартина, я предположил, что он использует .NET, но теперь заметил, что он не указан в исходном сообщении. Моя ошибка для того, чтобы быть в состоянии «.NET» :) –
Вы можете настроить это, не изменяя код в файле конфигурации приложения: 'confguration \ system.net \ mailSettings \ smtp'. – Thorarin
Питон smtpd модуль имеет DebuggingServer, который печатает все сообщения на стандартный вывод. Если вы перенаправите их в файл, вы должны сделать это.
У меня уже установлен python, поэтому мне потребовалось несколько минут, чтобы найти пример, а затем реализовать сервер отладки. У меня есть небольшая проблема с отображением электронных писем UTF-8. Когда я пытаюсь отправить электронную почту через gmail, нет никаких проблем с кодированными сообщениями UTF-8, однако модуль smtpd python не печатает символы не-ascii правильно. У вас есть предложения по этому вопросу? – Tolga
В общем, электронные письма должны быть закодированы с использованием кодировки с кавычками или base64 и переданы только в 7-разрядной кодировке ASCII (ищите MIME RFC в Google). Хотя некоторые расширения SMTP-сервера позволяют отправлять 8-битные электронные письма, это не то, на что вы должны рассчитывать. –
Официальный способ Python обрабатывать сообщения MIME - это пакет электронной почты. Однако выполнение этого может быть чрезмерным - поэтому я скорее рекомендую писать все сообщения в файле mbox (либо напрямую добавляя его, либо через модуль почтового ящика), а затем открывать модуль в Thunderbird. –
Ниже приведены ссылки я нашел
A Simple SMTP Server Mock for .NET \ - .NET
Dumbster - Java
mocksmtpd - Рубин
Использование в зависимости от языка и платформы по вашему выбору.
Существует также ранее пост для .NET Testing SMTP with .net
Я знаю, что это старый пост, однако я также знаю о http://smtp4dev.codeplex.com/, который я хотел бы также рекомендовать. Он сидит на панели задач и затем появляется, когда вы отправляете ему электронные письма.Это позволяет вам внимательно изучить электронную почту.
Для этого мы использовали Mailtrap. Это дает вам удаленную учетную запись smtp-сервера и прямой доступ ко всем письмам в ней. Таким образом, вы просто вводите заданные учетные данные smtp в своем приложении, и после этого все электронные письма, отправленные вашей системой, будут видны на mailtrap. И вы можете легко просмотреть исходный код почты и загрузить его в свою локальную систему. Вы можете увидеть пример here
На mailtrap вы можете иметь столько smtp-аккаунтов, сколько хотите (другая учетная запись для разных приложений или другого приложения) Также вы можете управлять доступом к своей учетной записи (так что только доверенные люди будут размещать ваши электронные письма), и вы можете перенаправить некоторые электронные письма на реальные адреса электронной почты.
Papercut (http://papercut.codeplex.com/discussions) является самым простым и элегантным до сих пор. Простой exe-файл, который прослушивает порт 25 и отображает сообщения электронной почты.
Пожалуйста, перечитайте вопрос: «Я ищу бесплатный тестовый smptp-сервер, который может сохранять электронные письма в файлах **» - Поддерживает ли PaperCut это? – Kev
Papercut - ужасный инструмент, он не может обрабатывать несколько сообщений одновременно. Я бы рекомендовал избежать этого. –
Я только что попробовал Papercut, и вы можете щелкнуть правой кнопкой мыши по почте и просмотреть сохраненный файл. Это хорошее программное обеспечение в моих книгах. – TheLegendaryCopyCoder
antix автономная установка была точным решением для моей проблемы. Это лучше, так как у меня возникла проблема с сервером отладки python, который не подходит для кодированных сообщений UTF-8. – Tolga
Последний вариант работал для меня, я еще больше установил [EML Reader] (http://www.emlreader.com/) для лучшего просмотра. –