Smart Security verwendet unter anderem den Versand von E-Mails, um seine Kunden vor potenziellen Einbrüchen zu warnen.

In diesem Blog-Eintrag möchten wir euch anhand eines einfachen Beispiels aufzeigen, wie man Mailversand mit Python realisieren kann.

import smtplib
import ssl
from socket import gaierror
import os

port = os.getenv('MAIL_PORT')
smtp_server = os.getenv('MAIL_SMTP_SERVER')
sender_email = os.getenv('MAIL_FROM')
receiver_email = os.getenv('MAIL_TO')
password = os.getenv('MAIL_PWD')
message = """\
Subject: Hallo
Diese Nachricht wurde mit Python gesendet."""

try:
    context = ssl.create_default_context()
    with smtplib.SMTP(smtp_server, port) as server:
        server.starttls(context=context)
        server.login(sender_email, password)
        server.sendmail(sender_email, receiver_email, message)
    print("Gesendet")

except (gaierror, ConnectionRefusedError):
    print('Verbindung zum Server fehlgeschlagen. Sind alle Verbindungseinstellungen korrekt?')
except smtplib.SMTPServerDisconnected:
    print('Verbindung zum Server fehlgeschlagen. Falscher Nutzer/Passwort?')
except smtplib.SMTPException as e:
    print('SMTP Error: ' + str(e))

Im ersten Abschnitt werden die Module importiert, welche wir benötigen. Die wichtigsten hierbei sind die smtplib, sowie SSL um TLS nutzen zu können.

Der zweite Block setzt alle Variablen, die man benötigt, um erfolgreich eine Mail versenden zu können. Hierzu zählen die Adresse + Port des Mailhosts / Mailservers, sowie die E-Mail-Adresse und das Passwort, um sich dort einzuloggen. Weiterhin sollte natürlich auch die E-Mail-Adresse des Empfängers, sowie ein Inhalt der Nachricht festgelegt werden.

Der dritte Block (beginnend mit „try“) ist für den tatsächlichen Versand der Mail zuständig. Es wird mittels STARTTLS eine gesicherte Verbindung zum Mailserver aufgebaut. Daraufhin loggt das Skript den User (das sind in dem Fall wir) ein und versendet die E-Mail.

Der letzte Block ist optional und beinhaltet ein wenig Error-Handling. Das hilft uns, etwas aussagekräftigere Fehlermeldungen auszugeben.

Das war’s auch schon. Viel Spaß beim selbst ausprobieren!

Mails versenden mit Python

Schreibe einen Kommentar