Das Versenden schöner E-Mails ist ein wichtiger Bestandteil jeder modernen Anwendung. Ob Registrierung, Benachrichtigung oder Mailing — ein einfaches text/plain löst keine Emotionen mehr aus. HTML-E-Mails sind jedoch echtes Marketing 💥
In diesem Artikel werden wir uns ansehen, wie man E-Mail-Vorlagen mit HTML und CSS innerhalb eines Python-Projekts erstellt und verwendet. Es ist einfach und sehr nützlich!

🔧 Warum braucht man HTML-Vorlagen für E-Mails?
📌 Struktur des Schreibens organisieren
🖼 Stile, Schaltflächen, Bilder hinzufügen
👀 Machen Sie den Brief visuell ansprechend
📱 An mobile Geräte anpassen
🛠️ Was werden wir verwenden?
smtplib— zum Versenden von E-Mailsemail.message.EmailMessage— um einen Brief zu erstellenJinja2— um HTML mit Variablen zu generierenHTML + встроенный CSS— für die Gestaltung
📁 Projektstruktur
email_project/
├── main.py
├── templates/
│ └── welcome.html🧠 Schritt 1: HTML-E-Mail-Vorlage (templates/welcome.html)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body { font-family: Arial, sans-serif; background-color: #f9f9f9; padding: 20px; }
.container { background: white; padding: 30px; border-radius: 10px; max-width: 600px; margin: auto; }
h1 { color: #333; }
p { color: #555; }
.button { background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px; }
</style>
</head>
<body>
<div class="container">
<h1>Привет, {{ name }}!</h1>
<p>Спасибо за регистрацию. Добро пожаловать в наш проект!</p>
<a href="{{ link }}" class="button">Подтвердить email</a>
</div>
</body>
</html>🧪 Schritt 2: Generieren Sie einen Brief in main.py
import smtplib
from email.message import EmailMessage
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('welcome.html')
html_content = template.render(name="Code", link="https://itcodik.com/confirm")
msg = EmailMessage()
msg['Subject'] = 'Welcome!'
msg['From'] = 'noreply@example.com'
msg['To'] = 'user@example.com'
msg.set_content("You have a new email")
msg.add_alternative(html_content, subtype='html')
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login('your_email@gmail.com', 'your_password')
smtp.send_message(msg)Wichtig: Passwort niemals fest programmieren - Umgebungsvariablen oder .env verwenden
📌 Tipps zum Layout von E-Mails
Was ist zu beachten? | Warum ist das wichtig? |
|---|---|
✅ Inline-Stile | E-Mail-Clients schneiden <style> |
✅ Einfache Struktur | Besser <table> für die Zuverlässigkeit |
❌ Verwenden Sie kein JS | Es funktioniert nicht in E-Mails |
✅ Bilder über URL | Nicht unnötig als Dateien anhängen |
✅ In Gmail, Outlook testen | Verschiedene Anzeige-Engines |
📤 Anwendungsbeispiele
Registrierung: Bestätigungsmail
Passwort wiederherstellen
Newsletter
Bestellbenachrichtigung
Unterstützungsschreiben
👀 Wie testet man eine E-Mail?
Sie können die HTML-Datei lokal speichern:
with open("preview.html", "w", encoding="utf-8") as f:
f.write(html_content)🧩 Wo es nützlich ist
In Flask-Projekten (
flask-mail)In Django (
EmailMultiAlternatives)In FastAPI über asynchrone SMTP-Bibliotheken
In Server-Bots, Benachrichtigungen, CRM-Integrationen
🧠 Fazit
HTML-E-Mails in Python zu erstellen ist einfach! Die Hauptsache ist eine Vorlage, ein paar Stile und eine ordentliche Sendung.
Wenn Sie mit Mailings und der automatischen Generierung von E-Mails experimentieren möchten, finden Sie in der Anwendung Kodik Hier findest du Schritt-für-Schritt-Kurse, Vorlagen und Community-Support. Komm vorbei oder schreibe uns Telegram-Chat ✌️
💬 Möchten Sie eine E-Mail-Vorlage mit adaptivem Layout oder Integration mit Mailgun / SendGrid? Schreiben Sie uns — wir machen eine Fortsetzung!
