- 1 1. Einführung
- 2 2. Wie man E-Mails mit Python sendet
- 3 3. Praxis: Codebeispiele zum Senden von E‑Mails in Python
- 4 4. E‑Mails mit Gmail senden
- 5 5. Fortgeschrittene Anwendungen: E‑Mail‑Versandtechniken
- 6 6. Zusammenfassung
1. Einführung
E-Mails mit Python zu senden ist eine sehr nützliche Fähigkeit sowohl für private Anwendungen als auch für Geschäftssysteme. Zum Beispiel kann sie verwendet werden, um automatisch Benachrichtigungen an Nutzer aus einer Anwendung zu senden oder Systemfehlerprotokolle in Echtzeit an Administratoren zu übermitteln. Außerdem können Sie durch das Senden von E-Mails per Code anstelle von Hand die Zustellung effizient verwalten und alltägliche Aufgaben stark vereinfachen.
Python enthält „smtplib“ in seiner Standardbibliothek, wodurch das grundlegende Senden von E-Mails ohne externe Module möglich ist. In diesem Artikel erklären wir die grundlegende Einrichtung und die Schritte zum Senden von E-Mails mit Python und stellen praktische Methoden anhand realer Codebeispiele vor. Wir behandeln zudem fortgeschrittene Themen im Detail, wie HTML-formatierte E-Mails, das Senden von E-Mails mit Anhängen, Gmail‑Sicherheitseinstellungen, das Senden von E-Mails auf Japanisch und das Massensenden an mehrere Empfänger.
Am Ende dieses Leitfadens können Sie problemlos E-Mails mit Python versenden und verfügen über das Wissen, dies in verschiedensten Situationen anzuwenden.
2. Wie man E-Mails mit Python sendet
Um mit Python E-Mails zu senden, verwenden Sie die Standardbibliothek „smtplib“. Diese Bibliothek ermöglicht das Senden von E-Mails über einen SMTP‑Server, indem Sie einfach Code schreiben. Im Folgenden geben wir einen detaillierten Überblick über das smtplib‑Modul und die grundlegenden Schritte zum Senden von E-Mails.
Einführung in das smtplib‑Modul
Das smtplib‑Modul ist Teil von Pythons Standardbibliothek und unterstützt das SMTP‑Client‑Protokoll. Mit diesem Modul können Sie direkt von Python aus eine Verbindung zu einem SMTP‑Server herstellen und E-Mails senden.
Wesentliche Merkmale von smtplib
- Kommuniziert einfach mit SMTP‑Servern.
- Es werden keine zusätzlichen externen Module benötigt; es ist in Python enthalten, sodass keine weitere Einrichtung erforderlich ist.
- Unterstützt Sicherheitseinstellungen und Fehlerbehandlung.
Grundlegende Schritte zum Senden von E-Mails
Jetzt gehen wir die grundlegenden Schritte zum Senden von E-Mails mit Python durch. Wenn Sie die nachstehenden Schritte befolgen, können Sie E-Mails einfach senden.
1. Verbindung zu einem SMTP-Server herstellen
Zunächst müssen Sie eine Verbindung zu einem SMTP‑Server herstellen. Dies ist der Ausgangspunkt für das Senden von E-Mails. In der Regel verwenden Sie häufig SMTP‑Server, die von Diensten wie Gmail, Yahoo Mail oder Outlook bereitgestellt werden, es ist jedoch auch möglich, den dedizierten SMTP‑Server eines Unternehmens zu nutzen.
import smtplib
# SMTP server settings
smtp_server = "smtp.example.com" # Example: For Gmail, use "smtp.gmail.com"
smtp_port = 587 # Common port number. For Gmail, use 587
2. Anmeldung authentifizieren einrichten
Nachdem die Verbindung zum SMTP‑Server hergestellt ist, melden Sie sich mit der E‑Mail‑Adresse und dem Passwort des Absenders an. Bei Diensten wie Gmail können zusätzliche Sicherheitseinstellungen erforderlich sein.
# Email account information
username = "your_email@example.com"
password = "your_password"
# Connect and log in to the SMTP server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Establish a secure connection
server.login(username, password)
3. Erstellen und Senden der E-Mail
Als Nächstes erstellen Sie den Inhalt der zu sendenden E‑Mail. Geben Sie die Empfängeradresse, den Betreff und den Textkörper an und senden Sie die Nachricht über den SMTP‑Server.
# Email sending information
to_address = "recipient@example.com"
subject = "Test email"
body = "This email was sent from Python."
# Email format
message = f"Subject: {subject}
{body}"
# Send email
server.sendmail(username, to_address, message)
print("Email has been sent!")
4. Wichtige Punkte zur Fehlerbehandlung
Verbindungen zum SMTP‑Server und das Senden von E‑Mails können unerwartete Fehler verursachen. Verwenden Sie daher try‑except‑Blöcke, um Fehler angemessen zu behandeln.
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message)
print("The email was sent successfully!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit() # Close the connection
Zusammenfassung
Dies deckt das grundlegende Verfahren zum Senden von E‑Mails mit Python ab. Sobald Sie diesen Ablauf gelernt haben, können Sie E‑Mails automatisieren, mehrere Nachrichten gleichzeitig senden und ihn auf verschiedene Weise anwenden. Im nächsten Abschnitt werden wir im Detail das Senden von Nur‑Text‑E‑Mails, HTML‑E‑Mails und E‑Mails mit Anhängen anhand tatsächlicher Codebeispiele betrachten.

3. Praxis: Codebeispiele zum Senden von E‑Mails in Python
Ab hier präsentieren wir tatsächliche Codebeispiele zum Senden von E‑Mails mit Python. Wir erklären Schritt für Schritt, wie man Nur‑Text‑E‑Mails, HTML‑E‑Mails und E‑Mails mit Anhängen sendet.
Senden von Nur‑Text‑E‑Mails
Zunächst, hier ist, wie man die grundlegendste Form sendet: eine Nur‑Text‑E‑Mail. Wir verwenden das smtplib‑Modul, um eine einfache Textnachricht zu senden.
Codebeispiel
import smtplib
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "Plain text email test"
body = "This is a plain text email sent from Python."
# Email format
message = f"Subject: {subject}
{body}"
try:
# Connect to the server
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message)
print("Plain text email sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Senden von HTML‑E‑Mails
Als Nächstes erklären wir, wie man HTML‑formatierte E‑Mails sendet. Mit HTML‑E‑Mails können Sie den Body gestalten und Links einbetten. Wenn Sie HTML‑Code im E‑Mail‑Body einfügen, verwenden Sie das email.mime‑Modul, um das HTML korrekt zu verarbeiten.
Codebeispiel
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "HTML email test"
html_content = '''
<html>
<body>
<h1>Hello</h1>
<p>This is an HTML-formatted email sent from <strong>Python</strong>.</p>
<a href="https://example.com">Click here</a>
</body>
</html>
'''
# Create the email
message = MIMEMultipart()
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
message.attach(MIMEText(html_content, "html"))
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("HTML email sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Senden von E‑Mails mit Anhängen
Als Nächstes zeigen wir, wie man E‑Mails mit angehängten Dateien sendet. Zum Beispiel können Sie PDFs oder Bilder an Ihre E‑Mail anhängen. Dafür wird die MIMEBase‑Klasse aus dem email.mime‑Modul verwendet.
Codebeispiel
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# Email account information
smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_email@example.com"
password = "your_password"
# Recipient and contents
to_address = "recipient@example.com"
subject = "Test email with attachment"
body = "I have attached a file. Please check it."
# Create the email
message = MIMEMultipart()
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
# Attach file
filename = "example.pdf" # Name of the file to attach
with open(filename, "rb") as attachment:
part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", f"attachment; filename={filename}")
message.attach(part)
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("Email with attachment sent!")
except Exception as e:
print("Email send error:", e)
finally:
server.quit()
Zusammenfassung
Durch die Verwendung der obigen Codebeispiele können Sie verschiedene Arten von E‑Mails mit Python senden. Je nach Bedarf können Sie zwischen Nur‑Text, HTML oder E‑Mails mit Anhängen wählen. Im nächsten Abschnitt verwenden wir Gmail als Beispiel, um spezifische Einstellungen und Vorsichtsmaßnahmen bei der Nutzung eines bestimmten SMTP‑Servers zu erläutern.
4. E‑Mails mit Gmail senden
Dieser Abschnitt erklärt im Detail, wie man mit Gmail und Python E‑Mails sendet. Gmail ist weit verbreitet und stellt einen SMTP‑Server bereit, auf den Python‑Programme leicht zugreifen können. Das Senden von E‑Mails über Gmail erfordert jedoch einige Sicherheitseinstellungen.
Gmail SMTP‑Einstellungen
Um E‑Mails über Gmail zu senden, verwenden Sie die folgenden SMTP‑Serverinformationen:
- SMTP‑Server :
smtp.gmail.com - Port : 587 (TLS verwenden) oder 465 (SSL verwenden)
- Authentifizierung : Erforderlich
Grundlegendes Setup‑Codebeispiel
import smtplib
from email.mime.text import MIMEText
# Gmail SMTP server settings
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_password"
# Recipient and content
to_address = "recipient@example.com"
subject = "Test email from Gmail"
body = "This email was sent through Gmail from Python."
# Create the email content
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
# Connect to the server and send the email
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # Use TLS to enhance security
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("The email was sent using Gmail!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Sicherheitsüberlegungen
Bei der Verwendung eines Gmail‑Kontos sollten Sie Ihre Sicherheitseinstellungen überprüfen. Gmail legt in der Regel Sicherheitsbeschränkungen für den Zugriff von Drittanbieter‑Anwendungen fest. Daher sind beim Zugriff von Python aus die folgenden Schritte erforderlich.
Beschaffung eines App‑Passworts
- Zwei‑Faktor‑Authentifizierung aktivieren : Aktivieren Sie die 2‑Schritt‑Verifizierung in den Gmail‑Kontoeinstellungen. Dadurch kann ein App‑Passwort erstellt werden.
- Ein App‑Passwort generieren : Unter Gmail‑Konto > Sicherheit > App‑Passwörter ein dediziertes App‑Passwort für Ihr Python‑Programm erstellen. Dieses Passwort wird anstelle Ihres regulären Anmeldepassworts verwendet.
Hinweise
- Verwaltung von App‑Passwörtern : App‑Passwörter streng vertraulich und sicher aufbewahren.
- Kontosicherheit : Die Verwendung von App‑Passwörtern wird empfohlen, um unbefugten Zugriff auf Ihr Gmail‑Konto zu verhindern.
Codebeispiel (unter Verwendung eines App‑Passworts)
Wenn Sie ein App‑Passwort verwenden, sieht der Code so aus.
import smtplib
from email.mime.text import MIMEText
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
app_password = "your_app_password" # Use an app password instead of your regular password
to_address = "recipient@example.com"
subject = "Test email from Gmail using an app password"
body = "This email was sent from Gmail using an app password."
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, app_password)
server.sendmail(username, to_address, message.as_string())
print("The email was sent using Gmail!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Zusammenfassung
Beim Versenden von E‑Mails aus Python über Gmail sind die Sicherheitseinstellungen Ihres Kontos wichtig. Die Verwendung eines App‑Passworts ermöglicht ein sichereres Senden von E‑Mails. Der nächste Abschnitt stellt fortgeschrittene E‑Mail‑Versandtechniken in Python vor, darunter das Senden an mehrere Empfänger, geplantes automatisches Senden und das Versenden von E‑Mails auf Japanisch. 
5. Fortgeschrittene Anwendungen: E‑Mail‑Versandtechniken
Im Folgenden behandeln wir fortgeschrittene E‑Mail‑Versandtechniken in Python. Dieser Abschnitt erklärt praktische Methoden wie das Massensenden an mehrere Empfänger, die Automatisierung geplanter E‑Mails und das Versenden von E‑Mails auf Japanisch.
Senden an mehrere Empfänger
Mit Python können Sie eine Nachricht gleichzeitig an mehrere Empfänger senden. Durch das korrekte Setzen der Felder „To“, „Cc“ und „Bcc“ und das Verwalten der Empfänger als Liste wird das Massensenden einfach.
Code‑Beispiel
Unten finden Sie ein Code‑Beispiel, das mehrere Empfänger im Feld „To“ angibt.
import smtplib
from email.mime.text import MIMEText
# SMTP server info
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
# Recipient list
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
subject = "Test email to multiple recipients"
body = "This email was sent to multiple recipients at once."
# Create the email
message = MIMEText(body)
message["From"] = username
message["To"] = ", ".join(to_addresses) # Separate multiple recipients with commas
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_addresses, message.as_string())
print("The email to multiple recipients has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Automatisiertes geplantes Senden von E‑Mails
Um E‑Mails periodisch zu senden, ist das Einrichten eines Zeitplans nützlich. Python bietet Bibliotheken wie „schedule“ und das Modul „time“, um wiederkehrende Aufgaben basierend auf Zeitintervallen auszuführen. Beispielsweise können Sie ein Skript erstellen, das E‑Mails zu einem festgelegten Zeitpunkt automatisch versendet.
Code‑Beispiel (Geplantes Senden mit schedule)
import smtplib
from email.mime.text import MIMEText
import schedule
import time
def send_email():
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
to_address = "recipient@example.com"
subject = "Scheduled email"
body = "This is an email sent on a regular schedule."
message = MIMEText(body)
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("Email has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
# Send the email every day at 9:00 AM
schedule.every().day.at("09:00").do(send_email)
while True:
schedule.run_pending()
time.sleep(1)
Dieses Skript sendet automatisch jeden Tag eine E‑Mail zur angegebenen Zeit (hier 9:00 Uhr).
E‑Mails auf Japanisch senden
Beim Senden von E‑Mails auf Japanisch mit Python muss man auf die Kodierung achten. Insbesondere für Betreffzeilen und Inhalte, die Japanisch enthalten, sollten die Nachrichten auf UTF‑8‑Kodierung eingestellt werden, um eine korrekte Übertragung sicherzustellen.
Code‑Beispiel (Unterstützung für Japanisch)
import smtplib
from email.mime.text import MIMEText
from email.header import Header
smtp_server = "smtp.gmail.com"
smtp_port = 587
username = "your_email@gmail.com"
password = "your_app_password"
to_address = "recipient@example.com"
# Japanese subject and body
subject = Header("Test email in Japanese", "utf-8")
body = "This is an email sent in Japanese from Python."
message = MIMEText(body, "plain", "utf-8")
message["From"] = username
message["To"] = to_address
message["Subject"] = subject
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, to_address, message.as_string())
print("The Japanese email has been sent!")
except Exception as e:
print("Email sending error:", e)
finally:
server.quit()
Zusammenfassung
In diesem Abschnitt haben wir fortgeschrittene Techniken zum Senden von E‑Mails mit Python behandelt. Funktionen wie das Senden an mehrere Empfänger, das Automatisieren geplanter E‑Mails und die Unterstützung von Japanisch machen das Senden von E‑Mails praktischer. Der nächste Abschnitt fasst den Artikel zusammen und wiederholt die wichtigsten Punkte.
6. Zusammenfassung
Dieser Artikel führte durch das Senden von E‑Mails mit Python, von den Grundlagen bis zu fortgeschrittenen Techniken. Durch die Verwendung der Python‑Standardbibliothek „smtplib“ wird das Senden von E‑Mails einfach und kann in alltäglichen Aufgaben und Anwendungen eingesetzt werden.
Im Folgenden finden Sie eine Zusammenfassung der wichtigsten Punkte aus jedem Abschnitt.
- Grundlegende Schritte zum Senden von E‑Mails
- Sie haben gelernt, wie man das Python‑Modul „smtplib“ verwendet, um E‑Mails über einen SMTP‑Server zu senden.
- Wir haben außerdem den Ablauf vom Erstellen bis zum Senden von E‑Mails und die Bedeutung der Fehlerbehandlung behandelt.
- Praktische Code‑Beispiele zum Senden von E‑Mails
- Wir haben gezeigt, wie man reine Text‑E‑Mails, HTML‑E‑Mails und E‑Mails mit Anhängen sendet, jeweils mit Code‑Beispielen.
- Damit können Sie den Code an verschiedene E‑Mail‑Formate anpassen, um unterschiedlichen Anforderungen gerecht zu werden.
- E‑Mails mit Gmail senden
- Wir haben die SMTP‑Server‑Einstellungen von Gmail und Sicherheitsmaßnahmen mit App‑Passwörtern erklärt.
- Wir haben betont, dass Sie bei Verwendung eines Gmail‑Kontos die Zwei‑Schritt‑Verifizierung aktivieren und ein App‑Passwort einrichten müssen.
- Fortgeschrittene Techniken zum Senden von E‑Mails
- Wir haben das Senden an mehrere Empfänger, das Automatisieren geplanter E‑Mails und Techniken zum Umgang mit japanischsprachigem Inhalt behandelt.
- Insbesondere haben wir betont, dass korrekte Kodierungseinstellungen wichtig sind, wenn E‑Mails japanische Zeichen im Betreff oder im Text enthalten.
Wie man diesen Leitfaden verwendet
Indem Sie dieser Anleitung folgen, können Sie automatisierte E‑Mail‑Sender, geplante Benachrichtigungssysteme oder Benachrichtigungsanwendungen mit Python erstellen. Als praktische Fähigkeit können Sie sie im Kundensupport, im Betriebsmanagement oder als Teil von Benachrichtigungsdiensten einsetzen.
Das Senden von E‑Mails mit Python lässt sich auf viele Aufgaben und Anwendungsfälle anwenden, und seine Benutzerfreundlichkeit sowie Flexibilität können im Geschäftsbereich äußerst vorteilhaft sein. Probieren Sie es aus und integrieren Sie es in Ihre Projekte.




