Senden von E-Mails in Python mit SMTP

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.

Einführung in SMTP

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)

Erstellen und senden Sie eine einfache E-Mail

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:

  • Erstellen Sie ein SMTP-Objekt für die Verbindung zum Server.
  • Ins Konto einloggen.
  • Definieren Sie Ihre Nachrichtenkopfzeilen und Anmeldeinformationen.
  • Ein ... kreieren MIMEMultipart Nachrichtenobjekts und hängen die relevanten Header an, d. h. Von, An und Betreff.
  • Hängen Sie die Nachricht an die Nachricht an MIMEMultipart Objekt.
  • Zum Schluss senden Sie die Nachricht.

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.

Erstellen und senden Sie eine E-Mail mit einer Anlage

In diesem Beispiel senden wir eine E-Mail mit einem Bildanhang. Der Vorgang ähnelt dem Senden einer Nur-Text-E-Mail.

  • Erstellen Sie ein SMTP-Objekt für die Verbindung zum Server.
  • Ins Konto einloggen.
  • Definieren Sie Ihre Nachrichtenkopfzeilen und Anmeldeinformationen.
  • Ein ... kreieren MIMEMultipart Nachrichtenobjekts und hängen die relevanten Header an, d. h. Von, An und Betreff.
  • Lesen Sie das Bild und hängen Sie es an die Nachricht an MIMEMultipart Objekt.
  • Zum Schluss senden Sie die Nachricht.
# 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 umfassen
MIMEMessage und MIMEAudio.

Erstellen und senden Sie HTML-E-Mails

Als Erstes erstellen wir eine HTML-E-Mail-Vorlage.

Erstellen Sie eine HTML-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    

Im Browser anzeigen

Evanto Limited

November 2017

Erste Schritte mit Vue

Im einleitenden Beitrag dieser Serie haben wir ein wenig darüber gesprochen, wie Webdesigner von Vue profitieren können. In diesem Tutorial erfahren Sie, wie Sie Vue aufbauen können…

Einführung in Haiku: Design and Create Motion

Mit zunehmender Bewegung unter den Web-Entwicklern sind auch die Tools, die dazu beitragen, die Erstellung zu rationalisieren. Haiku ist ein eigenständiger…

Entwerfen Sie bessere Erlebnisse für Web und Mobile

Abbestellen | Tweet | Im Browser anzeigen

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    

Im Browser anzeigen

Evanto Limited

November 2017

Erste Schritte mit Vue

Im einleitenden Beitrag dieser Serie haben wir ein wenig darüber gesprochen, wie Webdesigner von Vue profitieren können. In diesem Tutorial erfahren Sie, wie Sie Vue aufbauen können…

Einführung in Haiku: Design and Create Motion

Mit zunehmender Bewegung unter den Web-Entwicklern sind auch die Tools, die dazu beitragen, die Erstellung zu rationalisieren. Haiku ist ein eigenständiger…

Entwerfen Sie bessere Erlebnisse für Web und Mobile

Abbestellen | Tweet | Im Browser anzeigen

"" "msg = email.message.Message () msg ​​['Betreff'] = 'Tutsplus Newsletter' msg ['Von'] = 'Ihre Adresse' msg ['An'] = 'An_Adresse' password =" Ihr Passwort "msg. add_header ('Content-Type', 'text / html') msg.set_payload (email_content) s = smtplib.SMTP ('smtp.gmail.com: 587') s.starttls () # Anmeldeinformationen zum Senden der Mail s. login (msg ['From'], Passwort) s.sendmail (msg ['From'], [msg ['To']], msg.as_string ())

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.

Fazit

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.