Dieses Tutorial enthält eine Einführung in SMTP, ein Python-Modul zum Senden von E-Mails. Außerdem wird gezeigt, wie verschiedene E-Mail-Typen gesendet werden, z. B. einfache Text-E-Mails, E-Mails mit Anhängen und E-Mails mit HTML-Inhalten.
Das Simple Mail Transfer Protocol (SMTP) dient zum Senden und Weiterleiten von E-Mails zwischen Mail-Servern.
In Python die smtplib
Das Modul definiert ein SMTP-Clientsitzungsobjekt, das zum Senden von E-Mail an einen beliebigen Internetcomputer mit einem SMTP- oder ESMTP-Listener-Dämon verwendet werden kann.
So erstellen Sie ein SMTP-Objekt.
import smtplib server = smtplib.SMTP (host = 'host_address', port = your_port)
Mit dem folgenden Skript können Sie eine E-Mail über den Google Mail SMTP-Server senden. Google erlaubt jedoch keine Anmeldung über smtplib
weil es diese Art der Anmeldung als "weniger sicher" gekennzeichnet hat. Um dieses Problem zu beheben, rufen Sie https://www.google.com/settings/security/lesssecureapps auf, während Sie in Ihrem Google-Konto angemeldet sind, und "Weniger sichere Apps zulassen". Siehe Screenshot unten.
Wir werden die folgenden Schritte ausführen, um diesen Prozess durchzuführen:
MIMEMultipart
Nachrichtenobjekts und hängen die relevanten Header an, d. h. Von, An und Betreff.MIMEMultipart
Objekt.Dieser Vorgang ist so einfach wie unten gezeigt.
# notwendige Pakete aus email.mime.multipart importieren importieren MIMEMultipart aus email.mime.text import MIMEText import smtplib # Nachrichtobjekt erstellen Instanz msg = MIMEMultipart () message = "Danke" # Parameter der Nachricht password einrichten = "Ihr_Kennwort" msg ['From'] = "your_address" msg ['To'] = "to_address" msg ['Betreff'] = "Abonnement" # im Nachrichtentext hinzufügen msg.attach (MIMEText (message, 'plain')) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Anmeldeinformationen zum Senden der E-Mail server.login (msg ['From'], Kennwort) # senden Sie die Nachricht über den Server . server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () print "erfolgreich versendete E-Mail an% s:"% (msg ['To'])
Beachten Sie, dass die Adressen "An" und "Von" explizit in den Kopfzeilen der Nachricht enthalten sein müssen.
In diesem Beispiel senden wir eine E-Mail mit einem Bildanhang. Der Vorgang ähnelt dem Senden einer Nur-Text-E-Mail.
MIMEMultipart
Nachrichtenobjekts und hängen die relevanten Header an, d. h. Von, An und Betreff.MIMEMultipart
Objekt.# send_attachment.py # notwendige Pakete aus email.mime.multipart importieren importieren MIMEMultipart aus email.MIMEImage import MIMEImage aus email.mime.text import MIMEText import smtplib # Nachrichtobjekt erstellen Instanz msg = MIMEMultipart () # die Parameter des Nachrichtenkennworts einrichten = "Ihr_Kennwort" msg ['From'] = "Ihre_Adresse" msg ['To'] = "to_address" msg ['Betreff'] = "Fotos" # Bild an Nachrichtentext msg.attach anhängen (MIMEImage (Datei ("google.") .jpg "). read ())) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Anmeldeinformationen zum Senden der Mail server.login (msg ['From' ], Passwort) # die Nachricht über den Server senden. server.sendmail (msg ['From'], msg ['To'], msg.as_string ()) server.quit () print "erfolgreich versendete E-Mail an% s:"% (msg ['To'])
Das MIMEImage
Klasse ist eine Unterklasse von MIMENonMultipart
die zum Erstellen von MIME-Nachrichtenobjekten von Bildtypen verwendet wird.Andere verfügbare Klassen umfassenMIMEMessage
und MIMEAudio
.
Als Erstes erstellen wir eine HTML-E-Mail-Vorlage.
Hier ist der HTML-Code für die Vorlage. Er enthält zwei Tabellenspalten, die jeweils ein Bild und einen Vorschau-Inhalt enthalten. Wenn Sie eine fertige, professionelle Lösung bevorzugen, greifen Sie zu unseren besten E-Mail-Vorlagen. Wir haben eine Reihe von responsiven Optionen mit einfach anzupassenden Funktionen, um loszulegen.
Tutsplus E-Mail-Newsletter
|
Die Vorlage wird schließlich so aussehen, wenn sie fertig ist:
Nachfolgend finden Sie das Skript zum Senden einer E-Mail mit HTML-Inhalten. Der Inhalt der Vorlage wird unsere E-Mail-Nachricht sein.
import smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Tutsplus E-Mail-Newsletter
|
Führen Sie Ihren Code aus. Wenn kein Fehler auftritt, war die E-Mail erfolgreich. Gehen Sie jetzt zu Ihrem Posteingang und Sie sollten Ihre E-Mail als HTML-Inhalt sehen, der schön formatiert ist.
In diesem Lernprogramm wurde das meiste zum Senden von E-Mails für Ihre Anwendung behandelt. Es gibt mehrere APIs zum Senden von E-Mails, so dass Sie nicht bei Null anfangen müssen, z. SendGrid, aber es ist auch wichtig, die Grundlagen zu verstehen. Weitere Informationen finden Sie in den Python-Dokumenten.
Zögern Sie nicht und sehen Sie, was wir für den Verkauf und das Studium in Envato Market zur Verfügung haben. Stellen Sie Ihre Fragen und stellen Sie mit dem untenstehenden Feed wertvolles Feedback.