2017-08-23 1 views
0

Ich versuche Python zum Senden von E-Mails zu bekommen. Zuerst habe ich Python smptd begann wie folgt:Schwierigkeit beim Senden von E-Mails mit Python

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

Dann, am Beispiel von https://www.tutorialspoint.com/python/python_sending_email.htm Anpassung habe ich das folgende Skript:

#!/usr/bin/python 

import smtplib 

sender = '[email protected]' 
receivers = ['[email protected]'] 

message = """From: From Person <[email protected]> 
To: To Person <[email protected]> 
Subject: SMTP e-mail test 

This is a test e-mail message. 
""" 

try: 
    smtpObj = smtplib.SMTP('localhost:1025') 
    smtpObj.sendmail(sender, receivers, message) 
    print "Successfully sent email" 
except SMTPException: 
    print "Error: unable to send email" 

Wenn ich dieses Skript ausführen, bekomme ich die Meldung „Erfolgreich gesendet Email". In meinen anderen Terminal-Fenstern (der den Python smptd enthält), zeigt er dies nach dem Ausführen des Skripts:

---------- MESSAGE FOLLOWS ---------- 
From: From Person <[email protected]> 
To: To Person <[email protected]> 
Subject: SMTP e-mail test 
X-Peer: ::1 

This is a test e-mail message. 
------------ END MESSAGE ------------ 

Aber ... keine E-Mail wird gesendet. Irgendeine Idee, was könnte falsch sein? Dies funktioniert gut - die E-Mail wird gesendet:

/usr/sbin/sendmail [email protected] <<<"hello" 

Antwort

0

Sie senden tatsächlich (im ersten Beispiel) Ihre E-Mail über einen lokalen Server-Entwicklung smtp, weil Sie die DebuggingServer Klasse erwähnen, die, wie die documention sagt :

Erstellen Sie einen neuen Debugging-Server. Argumente sind gemäß SMTPServer. Nachrichten werden verworfen und auf stdout gedruckt.

+0

Das hat den Trick gemacht. Vielen Dank! Jedes einzelne Beispiel, das ich im Internet gefunden habe, erwähnte das DebuggingServer-Argument und keiner von ihnen erwähnte zufällig, dass dies die Nachricht verwirft! – brt381

Verwandte Themen