Wie richte ich einen gefälschten SMTP-Server ein, um alle Mails abzufangen?

50

Ich bin auf der Suche nach einem SMTP-Dienst, der im Wesentlichen dem RFC gehorcht, außer dass er E-Mails sendet, die einfach in eine Datei protokolliert werden

[date] sent mail to <address>

Oder Wasauchimmer. Ich kann dies zusammen mit dem Minimum an Funktionalität, das ich in einer halben Stunde in Python benötige, ausprobieren, aber wenn es ein Projekt gibt, das besser funktioniert, würde ich das lieber nutzen.

Der Grund für die Notwendigkeit ist das Debuggen einer App, die weiterhin 7-mal so viele E-Mails sendet, wie sie haben soll.

EDIT: Und schon gefragt: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email

richo
quelle
Ja, diese Frage wurde beim Stackoverflow beantwortet, aber ich habe die pythonbasierte Antwort dort nicht gesehen.
BitwiseMan
Dies wird auch bei stackoverflow beantwortet: stackoverflow.com/questions/48653699/…
Realbart

Antworten:

58

Wenn Sie Python haben, wird die SMTP-Konversation in stdout geschrieben.

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

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

John Mee
quelle
Ich nehme es zurück, es unterstützt HTML-E-Mails.
HTTP500,
2
immer noch der beste Weg zum Debuggen!
MarZab
Keine Unterstützung für starttls :(
Att Righ
1
@AttRigh die smtplib hat TLS implementiert, aber das wird nicht so einfach sein. Stelle die Frage; vielleicht hat jemand schon ein script
John Mee
11

Sie sollten einen Blick darauf werfen, smtp-sinkwelcher Teil von Postfix ist. Sie müssen Postfix nicht ausführen, damit es funktioniert. Installieren Sie es einfach, um die ausführbare Datei zu haben. Alles, was Sie brauchen, kann über Befehlszeilenparameter konfiguriert werden:

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

mailq
quelle
Danke mailq. Das ist mehr oder weniger genau das, wonach ich gesucht habe!
Richo
8

Es gibt auch einen Rubinstein namens Mailcatcher .

Sie können die E-Mails direkt in Ihrem Browser über die integrierte Weboberfläche lesen. Unten finden Sie einen Screenshot von der jeweiligen Homepage.

Mailcatcher-Schnittstelle

David Costa
quelle
1
Wir verwenden derzeit Mailcatcher, stürzt zu viel ab.
Jacob Evans
6

Wir verwenden den Webdienst http://mailtrap.io in der Entwicklungs- und Staging-Umgebung. Es ist plattformunabhängig und erfordert kein eigenes SMTP.

Es bietet:

  • Alle E-Mails an einem Ort
  • Geteilter Zugang für das Entwicklerteam zum Posteingang
  • Entwicklertools zum Analysieren von E-Mails
  • Flexible Konfiguration
Bogdan Gusiev
quelle
Das ist großartig und viel robuster als das, was ich getan habe! Vielen Dank.
Richo
Mir gefällt, dass sie einen großzügigen kostenlosen Plan anbieten (für den Moment).
David
3

smtp4dev hat bei mir gut funktioniert. (Nur Windows)

Ferruccio
quelle
Ich habe gerade dieses tolle kleine Tool installiert und verwendet. Perfekt für meine Bedürfnisse (kein Java und eine schöne Benutzeroberfläche)
Nick.McDermaid
2

http://quintanasoft.com/dumbster/

Das sieht so aus, als würde es wahrscheinlich den Job machen, für alle anderen, die darüber stolpern.

richo
quelle
Schade, dass es einen Javavm erfordert. Außerdem hat sich jemand in jüngerer Zeit gabeled
John Mee
Prost John. Java-basiert war genug, um mich am Ende abzuschrecken, ich schloss damit, selbst etwas zu schreiben.
Richo
2

Haftungsausschluss: Dies ist eine späte Antwort, aber ich glaube wirklich, dass sie zukünftigen Zuschauern helfen wird. Beachten Sie auch, dass ich an diesem Produkt gearbeitet habe.

Wir haben Mailosaur gebaut, um genau dieses Problem zu lösen. Wir haben es seitdem entwickelt, um Test-E-Mail-Adressen sowie SMTP hinzuzufügen.

isNaN1247
quelle
1

Ich habe gerade so ziemlich jeden SMTP-Dienst aufgeschaltet und dann das Ergebnis an einen kleinen Eimer geschickt!

Tony Roth
quelle
Ich spreche jedoch von Massen-E-Mails und von Live-Kundendaten. Ich muss sicher sein, dass ich die Zwischenräume nicht mit Post überfluten werde.
Richo
Ich habe die smtpd.SMTPServer-Klasse von Python erweitert und werde das Projekt in etwa einer Woche veröffentlichen, wenn ich damit zufrieden bin (ich bündle es mit einer httpd-Testsuite, die ich vor einiger Zeit geschrieben habe). Ich habe die Suite sdb vorläufig benannt.
Richo
@Richo: Es gibt viele Möglichkeiten, das Versenden von E-Mails durch einen SMTP-Server zu verhindern. Mit den meisten können Sie ausgehende Verbindungen deaktivieren oder alle Nachrichten umleiten, oder Sie können ausgehende Verbindungen zu Port 25 blockieren Es ist trivial, einen echten so zu konfigurieren, dass er sich so verhält.
symcbean
@symcbean: das sind alles gültige Punkte. Persönlich finde ich es einfacher, meinen normalen Mail-Dienst zu beenden, meinen Debugging-Dienst zu starten, mein Debugging durchzuführen und dann die Live-Umgebung erneut zu starten. Kludges wie das Dumping des gesamten Port 25-Datenverkehrs verhindern dann, dass andere E-Mails gesendet werden. Vielen Dank für die Hilfe,
Richo
alles macht keinen sinn, alle smtp gateways bieten genau diese funktionalität, ohne die ausgehenden live emails zu verlieren!
Tony Roth