{}const=>[]async()letfn</>var
EntwicklungPython

Routinen automatisieren: Einen Python-Bot für automatische Antworten auf E-Mails schreiben

📩 Mit Python können Sie ganz einfach einen Bot schreiben, der automatisch auf eingehende Nachrichten antwortet. In diesem Artikel analysieren wir einen Beispielcode, zeigen das Basisszenario und Ideen zur Verbesserung, um Ihre Zeit für wichtigere Aufgaben freizugeben

К

Kodik

Autor

4 Min. Lesezeit

Warum ist das im Jahr 2025 notwendig? 🕒

E-Mail ist nach wie vor der wichtigste Kanal für die Kommunikation mit Kunden und Partnern. Tatsächlich sind 60–80 % der eingehenden E-Mails reine Routine: Bestätigungen, sich wiederholende Fragen, „Guten Tag, könnten Sie mir bitte sagen...“. Der Bot spart Ihnen Stunden pro Woche, beschleunigt die Antwort an den Benutzer und verringert die Wahrscheinlichkeit, dass E-Mails „liegen bleiben“.

Was wir bauen werden ⚙️

  • Mini-Bot auf IMAP + SMTP für die automatische Basis-Antwort.

  • Routing nach Schlüsselwörter (z. B. „Zahlung“, „Zusammenarbeit“).

  • Zusammenfassung „Wie man wechselt“ auf Gmail API (OAuth 2.0) für Zuverlässigkeit.

  • Bereitstellungsplan: cron / APScheduler, Logging, Docker.

  • Sicherheitsminimum: .env, App-Passwort, Frequenzbegrenzung.

Unten ist die minimale Arbeitsversion.

# pip install python-dotenv
import os, imaplib, smtplib, email
from email.mime.text import MIMEText
from dotenv import load_dotenv

load_dotenv()
IMAP = os.getenv("IMAP_SERVER", "imap.gmail.com")
SMTP = os.getenv("SMTP_SERVER", "smtp.gmail.com")
EMAIL = os.getenv("EMAIL_ADDRESS")
PASS  = os.getenv("EMAIL_PASSWORD")  # App-Passwort für Gmail

def send_reply(to_addr:str, subject:str):
    msg = MIMEText("Thank you! We have received your letter and will reply as soon as possible.")
    msg["Subject"] = f"Re: {subject or ''}".strip()
    msg["From"] = EMAIL
    msg["To"] = to_addr
    with smtplib.SMTP_SSL(SMTP, 465) as smtp:
        smtp.login(EMAIL, PASS)
        smtp.sendmail(EMAIL, [to_addr], msg.as_string())

with imaplib.IMAP4_SSL(IMAP) as imap:
    imap.login(EMAIL, PASS)
    imap.select("INBOX")
    status, data = imap.search(None, '(UNSEEN)')
    ids = data[0].split()
    for msg_id in ids:
        _, raw = imap.fetch(msg_id, "(RFC822)")
        msg = email.message_from_bytes(raw[0][1])
        sender = email.utils.parseaddr(msg.get("From",""))[1]
        subj   = msg.get("Subject","")
        if sender:
            send_reply(sender, subj)
        # als gelesen markieren
        imap.store(msg_id, '+FLAGS', '\\Seen')

💡 Tipp: Fügen Sie während der Tests einen „Trockenlauf“ (dry-run) hinzu, um Aktionen zu protokollieren, anstatt sie tatsächlich zu senden.

🔥 100.000+ Schüler sind bereits bei uns

Genug Theorie gelesen?
Zeit zu coden!

Kodik — eine App, in der du durch Praxis programmieren lernst. KI-Mentor, interaktive Lektionen, echte Projekte.

🤖 KI 24/7
🎓 Zertifikate
💰 Kostenlos
🚀 Jetzt starten
Heute beigetreten

Smarter: Antworten nach Schlüsselwörtern 🧭

Die einfachste Logik: Wir schauen uns das Thema und den Text des Briefes an und wählen eine Antwortvorlage aus.

KEYMAP = {
    "payment": "Regarding payment: the invoice has been sent, the terms are 1-2 banking days. If you need an act, please reply to this letter.",
    "cooperation": "Thank you for your interest! Please write briefly about your audience and format, and we will get back to you with a proposal.",
    "Technical support": "Describe the playback steps and send screenshots/logs — we will help you promptly."
}
DEFAULT = "Thank you for your letter! We are in touch and will get back to you as soon as possible."

def choose_reply(subject:str, body:str) -> str:
    text = f"{subject} {body}".lower()
    for key, template in KEYMAP.items():
        if key in text:
            return template
    return DEFAULT

Es kann auf eine einfache „Absicht“ erweitert werden: mehrere Schlüssel suchen, das „Gewicht“ der Übereinstimmungen zählen und die beste Vorlage auswählen.

Bereitstellung und Betrieb 🚀

  • Planer: cron, APScheduler oder systemd-timer.

  • Docker: Version von Python und Abhängigkeiten fixieren, .env als Geheimnis verbinden.

  • Protokolle: INFO-Ebene für normalen Betrieb und WARNING/ERROR für Fehler; Fehler an Telegram/Slack senden.

  • Frequenzbegrenzung: Antworten Sie nicht öfter als einmal pro Tag an die Adresse; führen Sie einen Cache mit "Antworten der letzten 24 Stunden".

  • A/B: Testen Sie die Texte der automatischen Antworten und den Betreff der E-Mail — dies wirkt sich auf die weitere Kommunikation aus.

Sicherheit und Ethik 🔒

  • Bewahren Sie Geheimnisse in .env auf, verwenden Sie App Password oder OAuth 2.0 verwenden, keine Token in das Repository übertragen.

  • Fügen Sie der Antwort „Sie haben eine automatische Antwort erhalten“ und eine Möglichkeit hinzu, die Person zu kontaktieren.

  • Führen Sie eine Whitelist von Domains/Adressen für automatische Aktionen; lassen Sie umstrittene E-Mails zur manuellen Analyse.

  • Beachten Sie die Richtlinien des E-Mail-Anbieters und das Datenschutzgesetz.

📊 Was kann ein Python-Mail-Bot?

Szenario

Was der Bot macht

Nutzen

Automatische Antwort

„Danke, wir haben den Brief erhalten“ + Wartezeit

Beseitigt Routine, beschleunigt die erste Reaktion

Filtration

Legt in Ordner: "Zahlung", "Zusammenarbeit", "Support"

Posteingang ohne Chaos

Weiterleitung

Sendet Fragen zur Zahlung an den Buchhalter, zur Integration an den technischen Support

Schnelles Routing

Schlüsselwörter

Wählt eine Vorlage basierend auf dem Inhalt der E-Mail aus

Relevantere Antworten

Integration mit CRM

Erstellt einen Lead / Deal, zieht einen Kontakt

Transparenter Trichter

KI-Antwort

Erstellt Text über LLM aus einer kurzen Zusammenfassung des Briefes

Menschlicher Ton, weniger Handarbeit

Upgrade-Ideen 💡

  • Zusammenfassung des Schreibens: Entnehmen Sie eine kurze Zusammenfassung und ersetzen Sie sie in der Antwort.

  • Vorlagen mit Variablen: Name des Absenders, Bestellnummer, Frist.

  • Anti-Schleife: keine automatischen Antworten/keine Antworten, Kopfzeilen prüfen Auto-Submitted.

  • Mehrsprachigkeit: Bestimmen Sie die Sprache des Schreibens und wählen Sie eine Vorlage aus.

📎 Speichern Sie Vorlagen in JSON/YAML und rollen Sie Änderungen ohne Code-Release aus.

In Kodike Wir machen das Programmierenlernen spannend und verständlich: Wir haben interessante Kurse mit Aufgaben, die helfen, die Fähigkeiten Schritt für Schritt zu verbessern.

Und wir haben auch einen aktiven Telegram-Kanal, wo wir coole Ideen diskutieren, Erfahrungen teilen und Aufgaben gemeinsam analysieren — Lernen wird nicht nur nützlich, sondern auch unterhaltsam.

Hinterlassen Sie einen Kommentar: Welches Skript für automatische Antworten benötigen Sie — „Zahlung“, „Support“, „Zusammenarbeit“ oder etwas anderes?

🎯Hör auf zu zögern

Artikel gefallen?
Zeit zum Üben!

Bei Kodik liest du nicht nur — du schreibst sofort Code. Theorie + Praxis = echte Skills.

Sofortige Praxis
🧠KI erklärt Code
🏆Zertifikat

Keine Registrierung • Keine Karte