So senden Sie automatisierte E-Mail-Nachrichten in Python

So senden Sie automatisierte E-Mail-Nachrichten in Python

Kommerzielle E-Mail-Clients bieten zwar den Komfort einer benutzerfreundlichen Benutzeroberfläche, ihnen fehlt jedoch häufig die Flexibilität und Anpassbarkeit, die sich viele Entwickler oder Inhaltsersteller für ihre E-Mail-Anforderungen wünschen.





Sei es für das Senden einer Dankes-E-Mail an einen neuen Abonnenten auf Ihrem Social-Media-Kanal oder das Hinzufügen von E-Mail-Funktionen zu Ihrem neuesten Projekt, die Möglichkeit, automatisierte Nachrichten mit SMTP in Python zu senden, ist etwas, das sich als nützlich erweisen wird.





Lesen Sie weiter, um herauszufinden, wie Sie heute ein Python-Skript zum Senden von E-Mails auf Ihrem Computer erhalten.





Was ist SMTP?

Einfach ausgedrückt ist SMTP oder Simple Mail Transfer Protocol ein Kommunikationsprotokoll für Mailserver, um E-Mails über das Internet zu übertragen.

Es ist ein integraler Bestandteil der Anwendungsschicht der TCP/IP-Suite, einer Reihe von Protokollen, die für die Kommunikation über das Internet oder andere ähnliche Netzwerke verwendet werden. In einem Netzwerk, in dem SMTP implementiert ist, ist ein Prozess bekannt als speichern und weiterleiten hilft beim Verschieben von E-Mails über Netzwerke.



An jedem Endpunkt verwendet eine als Mail Transfer Agent (MTA) bekannte Software Store and Forward, um die Kommunikation zwischen den teilnehmenden SMTP-Servern zu erleichtern. Die Hauptaufgabe von SMTP besteht daher darin, zu bestimmen, wo und wie E-Mails in einem Netzwerk von einem Punkt zum anderen wandern.

Einstieg

Sie benötigen ein E-Mail-Konto, um E-Mails mit diesem Programm zu senden. Dies liegt daran, dass wir den SMTP-Dienst des E-Mail-Clients zum Senden von E-Mails verwenden. Für dieses Tutorial verwenden wir Gmail.





Sie können auch einen lokalen SMTP-Debugging-Server verwenden, um Test-E-Mails zu senden, aber im Moment verwenden wir zum Senden von E-Mails ein E-Mail-Konto, da es intuitiver ist.

Es ist möglich, einfach ein bestehendes Gmail-Konto zu verwenden, aber während Sie mit Ihrem Programm herumspielen, kann es bald mit Test-E-Mails gefüllt werden. Aus diesem Grund empfehlen wir, zu Testzwecken ein „Wegwerfkonto“ zu erstellen.





Aktivieren Sie nun die Option, um weniger sichere Apps zulassen um auf Ihr Gmail-Konto zuzugreifen. Dies ist ein weiterer Grund, eine Wegwerf-E-Mail zu verwenden, da es nicht empfohlen wird, mit den Datenschutzeinstellungen Ihrer primären E-Mail herumzuspielen.

Schreiben der E-Mail in Python

Python 3 ist mit einem Modul namens smtplib (kurz für smtp-Bibliothek) vorinstalliert, das für die Arbeit mit SMTP-Servern verwendet werden kann.

Wie bei jedem anderen Python-Modul müssen Sie zunächst smtplib importieren.

import smtplib

Initialisieren eines SMTP-Objekts

Jetzt können Sie mit smtplib ein SMTP-Objekt erstellen, das Ihnen die meisten Funktionen eines herkömmlichen E-Mail-Clients bietet. Die Funktionen eines SMTP-Objekts können jedoch nur über Instanzmethoden genutzt werden. Der nächste Schritt besteht also darin, eine Objektinstanz zu deklarieren.

mySMTP = smtplib.SMTP('smtp.google.com')

Dadurch wird das SMTP-Objekt so konfiguriert, dass E-Mails über den SMTP-Server von Google versendet werden.

Danach legen wir die Absender- und Empfänger-E-Mails fest. Hier ist das Gmail-Konto, das Sie zuvor erstellt haben, praktisch.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Zu beachten ist hier, dass die Empfängerliste eigentlich ein Array ist, was bedeutet, dass sie nicht-atomare Werte speichern soll. Dadurch können Sie in diesem Feld sogar eine ganze Mailingliste angeben!

Die Nachricht schreiben

Der wohl einfachste Teil des Prozesses. Hier müssen Sie Werte eingeben, die Sie normalerweise beim Verfassen einer neuen E-Mail hinzufügen würden. Das beinhaltet:

  • Angaben zum Absender
  • Empfängerdaten
  • Gegenstand
  • Nachrichtentext

Diese Felder sind in dreifachen Anführungszeichen zusammengefasst und wie folgt abgegrenzt:

Dateiname ist zu lang zum Löschen
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Senden der E-Mail

Schließlich können wir den sendmail-Befehl verwenden, um die E-Mail von Ihrem SMTP-Server an den Server des Empfängers zu senden.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Jetzt gibt es nur noch einen letzten Schritt: den Code neu zu organisieren, um vorhersehbare Programmabstürze zu verhindern.

Fehlerbehebung bei Ihrem Python-E-Mail-Programm

Manchmal kann es vorkommen, dass Ihr SMTP-Server keine Verbindung mit dem des Empfängers herstellt, oder es kann ein Problem beim Senden einer E-Mail von einem SMTP-Port an einen anderen geben. In einem solchen Fall kann Ihr Programm unerwartet abstürzen.

Um solche Möglichkeiten zu berücksichtigen, können Sie a versuchen-außer blockieren und die fehleranfälligen Anweisungen in das Versuchen Block. Ihr gesamtes Programm sollte zusammen mit dem try-außer Block etwa so aussehen:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Sichern Sie Ihre E-Mails

Wenn Sie Python in einer realen Umgebung zum Senden von E-Mails verwenden möchten, ist es wichtig, sicherzustellen, dass die Kommunikation an beiden Enden sicher ist.

Die Verwendung eines einfachen SMTP-Servers mit dem Standardport bietet keine Verschlüsselungsschicht für die Kommunikation. Das bedeutet, dass ein Dritter, der Ihr Netzwerk abhört, auf Ihre Anmeldedaten und die Informationen in Ihrer E-Mail zugreifen kann.

Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, Ihre Kommunikation mit dem TLS-Protokoll (Transport Layer Security) zu verschlüsseln. Dies ist das gleiche Protokoll, das von großen E-Mail-Clients wie Gmail und Outlook verwendet wird, um sicherzustellen, dass Ihre E-Mails nie in die falschen Hände geraten.

Dazu müssen wir einige kleinere Änderungen an dem zuvor erstellten Programm vornehmen.

Der erste Schritt ist natürlich das Importieren der SSL Bibliothek zusammen mit smtplib . Die SSL Bibliothek bietet Ihnen die Möglichkeit, einen sicheren SSL-Kontext zu erstellen und über ein verschlüsseltes Netzwerk zu kommunizieren, indem Sie an beiden Enden eine Verbindung zu bestimmten Ports herstellen.

Ein sicherer SSL-Kontext ist nichts anderes als eine Sammlung von Verschlüsselungen, Protokollversionen, vertrauenswürdigen Zertifikaten, TLS-Optionen und TLS-Erweiterungen.

Anschließend können wir den TLS-Port angeben und einige hinzufügen SSL Bibliotheksfunktionen, um einen sicheren E-Mailer zu erstellen.

Der Code mit allen vorgenommenen Änderungen sieht in etwa so aus:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

Nach wie vor sollten Sie die SMTP-Instanz in einem try-except-Block erstellen und verwenden, um abrupte Programmabstürze zu vermeiden.

was bedeutet netflix limitierte serie

Was Sie mit diesem Python-Skript tun können

Nachdem Sie nun die großartige und überraschend nützliche Fähigkeit der Automatisierung von E-Mails mit Code erworben haben, können Sie sie auf jede Plattform anwenden, die das Senden von E-Mails an eine vielfältige Mailingliste erfordert.

Von der Verwendung auf Ihrer persönlichen Website zum Senden automatischer Bestätigungs-E-Mails bis hin zur Verwendung von Weihnachtskarten oder Einladungen an Ihre Familie und Freunde sind die Verwendungsmöglichkeiten dieses kleinen Python-Skripts nur durch Ihre eigene Kreativität begrenzt.

Dies ist auch nur eines der vielen großartigen Dinge, die Sie mit Python tun können. Mit der allgegenwärtigen Entwicklerunterstützung und der leicht zu erlernenden Syntax war es noch nie so einfach, eine Python-Fähigkeit zu erlernen.

Um weiterhin coole Dinge mit Code zu erstellen, lesen Sie unseren Leitfaden zur Vorgehensweise Bauen Sie Ihren eigenen Telegram-Bot mit Python 3 !

Teilen Teilen Tweet Email So verbessern Sie Ihre Python- und KI-Fähigkeiten mit Keras, Pytorch, Tensorflow und mehr

Verbessern Sie Ihre Programmier- und Webentwicklungskenntnisse in Python, Künstliche Intelligenz, Keras, PyTorch und mehr

Weiter lesen
Verwandte Themen
  • Programmierung
  • Google Mail
  • E-Mail-Tipps
  • Python
  • Aufgabenautomatisierung
Über den Autor Yash Chellani(10 Artikel veröffentlicht)

Yash ist ein aufstrebender Informatikstudent, der es liebt, Dinge zu bauen und über alles, was mit Technik zu tun hat, zu schreiben. In seiner Freizeit spielt er gerne Squash, liest eine Ausgabe des neuesten Murakami und jagt Drachen in Skyrim.

Mehr von Yash Chellani

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren