[LINUX] Debuggen Sie die E-Mail-Übertragung mit Pythons smtpd.DebuggingServer

Wenn Sie ein System entwickeln, das E-Mails sendet, beträgt die Grenze für Blockierung ausgehender Ports 25 des von Ihnen verwendeten Anbieters 25, abhängig von der Netzwerkumgebung, an der Sie arbeiten. Das Senden von E-Mails über die Portnummer ist möglicherweise blockiert.

Sie können es über den vom Anbieter angegebenen SMTP-Server senden. Dies ist jedoch problematisch, da Sie die SMTP-Benutzerinformationen für die Entwicklung in die E-Mail-Sendeeinstellungen aufnehmen müssen.

Zum Zeitpunkt der Entwicklung wollte ich in der Lage sein, den Inhalt der gesendeten E-Mails zu überprüfen, auch wenn sie nicht tatsächlich gesendet wurden. Als ich nach einem SMTP-Server zum Debuggen suchte, fand ich smptd.DebuggingServer in Python. Es gab eine Standardbibliothek namens 2 / library / smtpd.html (debuggingserver-Objekte).

Sie können einen Dummy-SMTP-Server mit dem folgenden Einzeiler starten.

$ python -m smtpd -n -c DebuggingServer localhost:1025

Wenn man sich die Quelle des smtpd-Moduls ansieht, implementiert es nur SMTPServer # process_message, daher halte ich es für eine gute Idee, einen Debug-Server zu erstellen, der nach Bedarf angepasst wurde.

http://hg.python.org/cpython/file/2.7/Lib/smtpd.py#l330:

class DebuggingServer(SMTPServer):
    # Do something with the gathered message
    def process_message(self, peer, mailfrom, rcpttos, data):
        ...
        print '---------- MESSAGE FOLLOWS ----------'
        for line in lines:
           ...
        print '------------ END MESSAGE ------------'

Es gab bereits eine Bibliothek namens dsmtpd.

Recommended Posts

Debuggen Sie die E-Mail-Übertragung mit Pythons smtpd.DebuggingServer
Einfache Mailübertragung mit Eile Python3
Ich habe versucht, eine E-Mail mit SendGrid + Python zu senden
Mail mit Django senden
Drucken Sie das Debug mit PyScribe
Überprüfen Sie die E-Mail mit Python
Mail per Python senden
Ich habe versucht, mit Python eine E-Mail von Amazon SES zu senden
Gesichtserkennung mit OpenCV von Python
Implementieren Sie Unterbefehle mit Pythons Argparse
Debuggen Sie Python mit VS-Code
Debuggen mit dem PEPPER Python Interpreter
Senden Sie E-Mails mit Pythons smtplib
Debuggen Sie gemeinsam genutzte Bibliotheken mit VScode
Ich habe versucht, E-Mails vom Sakura-Server mit Flask-Mail zu senden