Senden von E-Mails von Python über SMTP
Verwende ich die folgende Methode, um E-mail senden von Python unter Verwendung von SMTP. Ist es die richtige Methode zu verwenden, oder gibt es Fallstricke, die ich bin fehlt ?
from smtplib import SMTP
import datetime
debuglevel = 0
smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')
from_addr = "John Doe <[email protected]>"
to_addr = "[email protected]"
subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )
message_text = "Hello\nThis is a mail from your server\n\nBye\n"
msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s"
% ( from_addr, to_addr, subj, date, message_text )
smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()
InformationsquelleAutor der Frage Eli Bendersky | 2008-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Skript, das ich benutze, ist ziemlich ähnlich; ich poste es hier als ein Beispiel für die Verwendung der E-Mail.* Module zum erzeugen von MIME-Nachrichten, also das script leicht modifiziert werden, um Bilder anzuhängen, etc.
Verlasse ich mich auf mein ISP hinzufügen, um das Datum bzw. die Uhrzeit header.
Mein ISP verlangt von mir, eine sichere smtp-Verbindung, um E-mail senden, ich verlasse mich auf die ssmtplib Modul (herunterladbar unter http://www1.cs.columbia.edu/~db2501/ssmtplib.py)
Als Sie in Ihrem Skript den Benutzernamen und das Passwort (dummy-Werte unten), wird zur Authentifizierung auf dem SMTP-server, sind im Klartext in der Quelle. Dies ist ein Sicherheits-Schwäche; aber die beste alternative ist hängt davon ab, wie vorsichtig Sie brauchen (wollen?) werden, um den Schutz dieser.
=======================================
InformationsquelleAutor der Antwort Vincent Marchetti
Die Methode, die ich Häufig verwenden...nicht viel anders, aber ein wenig
Dass es
InformationsquelleAutor der Antwort madman2890
Auch wenn Sie wollen, um smtp-auth mit TLS im Gegensatz zu SSL, dann haben Sie nur den port ändern (verwenden 587) und nicht smtp.starttls(). Dieser arbeitete für mich:
InformationsquelleAutor der Antwort
Den wichtigsten Punkt den ich sehe, ist, dass Sie nicht die Behandlung von Fehlern: .login() und .sendmail() sowohl über dokumentierte Ausnahmen, die Sie werfen kann, und, wie es scheint .connect() muss auf irgendeine Art und Weise zu zeigen, dass es keine Verbindung - vermutlich eine Ausnahme, die ausgelöst durch die zugrunde liegende socket-code.
InformationsquelleAutor der Antwort pjz
Stellen Sie sicher, dass Sie don ' T haben keine firewalls blockieren von SMTP. Das erste mal habe ich versucht eine email zu senden, es blockiert wurde, sowohl von der Windows-Firewall und McAfee - nahm immer zu, beide zu finden.
InformationsquelleAutor der Antwort Mark Ransom
Was ist das?
InformationsquelleAutor der Antwort Satish
folgende code ist in Ordnung für mich:
Ref: http://www.mkyong.com/python/how-do-send-email-in-python-via-smtplib/
InformationsquelleAutor der Antwort Abdul Majeed
Sollten Sie sicherstellen, dass Ihr format das Datum in das richtige format - RFC2822.
InformationsquelleAutor der Antwort Douglas Leeder
Sehen Sie alle die ausführliches Antworten? Bitte erlauben Sie mir, zu sich selbst zu fördern, indem alle tun es in ein paar Zeilen.
Import und Connect:
Ist es dann nur ein Einzeiler:
Wird es tatsächlich zu schließen, wenn es den Bereich verlässt (oder kann manuell geschlossen). Darüber hinaus wird es Ihnen ermöglichen, deinen Benutzernamen zu registrieren, die in Ihrem Schlüsselbund, so dass Sie nicht haben, schreiben Sie Ihr Passwort in deinem Skript (es ist wirklich störte mich vor dem schreiben
yagmail
!)Für die Verpackung/Montage, Tipps und tricks schauen Sie bitte auf git oder pipsowohl für Python 2 und 3.
InformationsquelleAutor der Antwort PascalVKooten
das können Sie gerne tun,
InformationsquelleAutor der Antwort Skiller Dz
Hier ist ein funktionierendes Beispiel für Python 3.x
InformationsquelleAutor der Antwort Mark