Как настроить поддельный SMTP-сервер для перехвата всех писем?


50

Я ищу SMTP-сервис, который по сути подчиняется RFC, за исключением того, что вместо отправки почты он просто записывает в файл

[date] sent mail to <address>

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

Причиной этого является отладка приложения, которое продолжает отправлять 7 * количество почты, на которое он должен.

РЕДАКТИРОВАТЬ: И уже спросил: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Да, на этот вопрос ответили на stackoverflow, но я не увидел ответа на основе Python.
BitwiseMan

На этот вопрос также отвечают в stackoverflow: stackoverflow.com/questions/48653699/…
realbart

Ответы:


58

Если у вас есть python, он напишет SMTP-диалог в stdout.

sudo python -m smtpd -n -c DebuggingServer localhost:25

http://docs.python.org/library/smtpd.html#debuggingserver-objects


Я забираю это назад, он поддерживает HTML-письма.
HTTP500

2
все еще лучший способ отладки!
MarZab

Нет поддержки для starttls :(
Att Righ

1
@AttRigh В smtplib реализован TLS, но его использование не будет таким простым. Разместить вопрос; может у кого уже есть скрипт?
Джон Ми,

11

Вы должны взглянуть на то, smtp-sinkчто является частью Postfix. Вам не нужно запускать Postfix, чтобы он работал. Просто установите его, чтобы получить исполняемый файл. Все, что вам нужно, можно настроить с помощью параметров командной строки:

http://www.postfix.org/smtp-sink.1.html


Спасибо mailq. Это более или менее точно то, что я был после!
richo

8

Существует также рубиновый камень под названием mailcatcher .

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

Интерфейс Mailcatcher


1
В настоящее время мы используем mailcatcher, слишком много аварий.
Джейкоб Эванс

6

Мы используем веб-сервис http://mailtrap.io в среде разработки и подготовки. Он не зависит от платформы и не требует запуска собственного SMTP.

Это предлагает:

  • Все электронные письма в одном месте
  • Общий доступ для команды разработчиков к почтовому ящику
  • Инструменты разработчика для анализа писем
  • Гибкая конфигурация

Это здорово и намного надежнее, чем я делал! Благодарю.
Ричо

Мне нравится, что они предлагают щедрый бесплатный план (пока).
Дэвид

3

smtp4dev хорошо сработал для меня. (Только для Windows)


Я только что установил и использовал этот замечательный маленький инструмент. Идеально
подходит

2

http://quintanasoft.com/dumbster/

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


Жаль, это требует javavm. Плюс, кто-то недавно разветвлялся и работал над этим ... github.com/rjo1970/dumbster
Джон Ми,

Ура Джон. Основанного на Java было достаточно, чтобы в конце концов меня оттолкнуть, я просто написал что-то сам.
Ричо

2

Отказ от ответственности: Это поздний ответ, но я искренне верю, что он поможет будущим зрителям. Также обратите внимание, что я работал над этим продуктом.

Мы создали Mailosaur , чтобы решить эту проблему. С тех пор мы создали его для добавления тестовых адресов электронной почты, а также SMTP.



1

Я просто разбираюсь с любыми службами smtp, а затем отправляю результаты в ведро!


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

Я закончил расширением класса python smtpd.SMTPServer, я опубликую проект через неделю или около того, когда я буду им доволен (я связываю его с набором тестов httpd, который я написал некоторое время назад). Я предварительно назвал набор SDB.
Ричо

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

@symcbean: все это действительные точки. Лично мне проще остановить свою обычную почтовую службу, запустить службу отладки, выполнить отладку, а затем снова запустить живую среду. Такие помехи, как сброс трафика всего порта 25, затем запрещают отправку почты. Спасибо за помощь, хотя,
richo

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