Senden Sie E-Mails in Python

Najwa Riyaz 12 Oktober 2021
Senden Sie E-Mails in Python

Um eine E-Mail mit Python zu versenden, verwenden Sie die folgenden Funktionen aus der Bibliothek smtplib.

  • SMTP(SMTP_SERVER, SMTP_PORT) - erstellt eine SMTP-Sitzung gemäß SMTP-Server und SMTP-Portdetails.
  • starttls() - um den TLS für die Sicherheitseinrichtung zu starten.
  • login(SMTP_USERNAME, SMTP_PASSWORD) – um die Authentifizierungsdaten des E-Mail-Absenders anzugeben.
  • sendmail(EMAIL_FROM, EMAIL_TO, the_message) - um die Nachricht vom Sender an den Empfänger zu senden.
  • quit() um die SMTP-Sitzung zu beenden.

Hier ist ein Beispiel, das das Senden von E-Mails über den Gmail-SMTP-Server zeigt.

import smtplib

SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"

s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()

Die Ausgabe kann gemäß der zu diesem Zeitpunkt in Ihrem System aufgebauten Verbindung wie folgt aussehen:

(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")

Als Ergebnis wird die E-Mail gesendet. Der Empfänger empfängt die Nachricht erfolgreich.

Hinweis:

  • Geben Sie im Fall von Gmail die folgenden SMTP-Details an:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587

Außerdem muss die folgende Einstellung in Gmail aktiviert werden, bevor der Code ausgeführt wird.

https://myaccount.google.com/lesssecureapps
  • Geben Sie im Falle von Yahoo Mail die folgenden SMTP-Details an:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587

Generieren Sie außerdem ein Yahoo App-Passwort, bevor Sie den Code ausführen. Überprüfen Sie den Link unten.

https://help.yahoo.com/kb/generate-separate-password-sln15241.html

  • Wenn Sie einen anderen E-Mail-Anbieter verwenden möchten, verwenden Sie die entsprechenden SMTP-Serverdetails und -voraussetzungen.