Wie kann ich senden E-Mail mit Python?
Ich Schreibe ein Programm, das sendet eine E-Mail mit Python. Was ich gelernt habe aus verschiedenen Foren ist das folgende Stück code:
#!/usr/bin/env python
import smtplib
sender = "[email protected]"
receivers = ["[email protected]"]
yourname = "Abhishek Sagar"
recvname = "receptionist"
sub = "Testing email"
body = "who cares"
message = "From: " + yourname + "\n"
message = message + "To: " + recvname + "\n"
message = message + "Subject: " + sub + "\n"
message = message + body
try:
print "Sending email to " + recvname + "...",
server = smtplib.SMTP('smtp.gmail.com:587')
username = '[email protected]'
password = '*****'
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(sender, receivers, message)
server.quit()
print "successfully sent!"
except Exception:
print "Error: unable to send email"
Aber es ist einfach nur drucken ""Error: unable to send E-Mail" und verlässt sich auf das terminal. Wie könnte ich dies beheben?
Modifizierte ich die letzten beiden Zeilen
except Exception, error:
print "Unable to send e-mail: '%s'." % str(error)
Bekomme ich die folgende Fehlermeldung :
Traceback (most recent call last):
File "./2.py", line 45, in <module>
smtpObj = smtplib.SMTP('localhost')
File "/usr/lib/python2.6/smtplib.py", line 239, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.6/smtplib.py", line 295, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python2.6/smtplib.py", line 273, in _get_socket
return socket.create_connection((port, host), timeout)
File "/usr/lib/python2.6/socket.py", line 514, in create_connection
raise error, msg
socket.error: [Errno 111] Connection refused
- Ich sehe, du bist neu auf stackoverflow, herzlich willkommen! Stellen Sie sicher, dass Sie die Bearbeiten-Hilfe, um richtig formatieren Sie Ihre Beiträge. Dies hilft uns, die deine Frage Lesen leichter und erhöht Ihre Chancen auf eine Antwort.
- mögliche Duplikate von E-mail Senden von Python unter Verwendung von SMTP
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die message-Header, payload enthalten nicht-ascii-Zeichen, dann sollte kodiert werden:
Wenn Sie drucken die Fehlermeldung, werden Sie wahrscheinlich erhalten Sie eine umfassende Beschreibung der was Fehler aufgetreten ist. Versuchen Sie es (kein Wortspiel beabsichtigt) dieser:
Wenn Sie nach dem Lesen der Fehlermeldung, die Sie noch nicht verstehen, Ihre Fehler, aktualisieren Sie bitte Ihre Frage mit der Fehlermeldung und wir können Ihnen helfen, einige mehr.
Update nach zusätzlichen Informationen:
die Fehlermeldung
bedeutet, dass das remote-Ende (zB den GMail-SMTP-server) ist die Verweigerung der Netzwerk-Verbindung. Wenn Sie einen Blick auf die smtplib.SMTP-Konstruktor, es scheint, dass Sie sich ändern sollte
den folgenden.
Entsprechend der Fehlermeldung, verwenden Sie "localhost" als SMTP-server verwendet, dann wird die Verbindung abgelehnt wurde. Ihre localhost kein SMTP-Server läuft, ich denke, Sie brauchen, um stellen Sie sicher, dass der SMTP-server Sie eine Verbindung gültig ist.