Хороший способ проверить работоспособность электронной почты - PullRequest
8 голосов
/ 10 декабря 2008

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

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

Спасибо.

Ответы [ 6 ]

18 голосов
/ 11 декабря 2008

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

  1. Скачать Papercut.
  2. Запустите Papercut, пока он находится в вашем лотке.
  3. Настройте узел smtp вашего приложения на машину, на которой работает Papercut.
  4. Просмотр Papercut получает электронные письма и просматривает их содержимое.
  5. Когда вы закончите. Закрыть Papercut.
5 голосов
/ 10 декабря 2008

Довольно просто настроить псевдоним, который доставляется в файл, а не через какой-либо механизм доставки на любом из основных почтовых серверов Unix / Linux, таких как Postfix или Sendmail. Во время тестирования вы можете подключить этот файл, чтобы увидеть, что почта отправляется, когда вы ожидаете. После окончания тестирования вы можете перенаправить его туда, куда он действительно должен идти.

2 голосов
/ 27 апреля 2017

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

1 голос
/ 11 декабря 2008

Ваш вопрос не описывает среду, но если вы используете OO-язык (например, Java), вы можете использовать внедрение зависимостей. Написать MessageSender интерфейс с двумя реализациями; один (EmailMessageSender) фактически отправляет электронные письма, а другой (FileMessageSender) записывает сообщение в строку.

Написать и проверить EmailMessageSender в изоляции; как только он будет проверен, положите его на полку.

Запишите другие части системы по MessageSender и протестируйте их, используя (внедренный) экземпляр FileMessageSender. (Если FileMessageSender также позволяет получать содержимое «отправленного сообщения», то вы можете использовать его в модульном тестировании.)

Как только вы проверили остальную часть системы, разверните ее, используя (снова через внедрение) правильно настроенный экземпляр EmailMessageSender.

1 голос
/ 10 декабря 2008

В зависимости от механизма электронной почты, другой альтернативой может быть создание сценария testmail. (Py, php, sh), который записывает все предоставленные аргументы и выгружает их в таблицу тегов с отметками времени события. Это не элегантно, но подойдет для отладки. Трюк все зависит от того, как вы отправляете электронную почту.

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

0 голосов
/ 10 декабря 2008

Почему бы просто не выплеснуть список адресов электронной почты в текстовый файл и не отключить любые звонки на почтовый сервер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...