developerAPIIMAPwebhooksemail

E-Mails über API empfangen: Webhooks, IMAP und Polling

Drei Ansätze zum programmatischen Empfangen von E-Mails – IMAP-Polling, Webhooks und API-Polling – mit Code-Beispielen und Architektur-Anleitung.

September 22, 2025·7 min Lesedauer·Reusable.Email
E-Mails über API empfangen: Webhooks, IMAP und Polling

Ihre Anwendung muss reagieren, wenn eine E-Mail ankommt. Vielleicht analysiert sie Verifizierungscodes in einem automatisierten Test. Vielleicht leitet sie Kunden-E-Mails in ein Support-Ticket-System weiter. Vielleicht verarbeitet sie eingehende Daten von einem Partner, der per E-Mail kommuniziert.

Was auch immer der Anwendungsfall ist, „E-Mail programmatisch empfangen" läuft auf drei Ansätze hinaus: IMAP-Polling, Webhooks und API-Polling. Jede hat verschiedene Trade-offs in Latenz, Komplexität und Infrastruktur-Anforderungen.

Ansatz 1: IMAP-Polling

IMAP ist das Standard-Protokoll zum Lesen von E-Mail von einem Server. Sie stellen eine Verbindung zum IMAP-Server her, suchen Nachrichten und laden sie herunter. Jeder E-Mail-Client – Thunderbird, Outlook, Apple Mail – verwendet IMAP unter der Haube.

Für programmgesteuerten Zugriff machen Sie das Gleiche im Code: verbinden, suchen, abrufen, analysieren.

Wie es funktioniert

  1. Öffnen Sie eine IMAP-Verbindung zum Mail-Server
  2. Wählen Sie den Inbox (oder einen bestimmten Ordner)
  3. Suchen Sie Nachrichten, die Ihren Kriterien entsprechen (ungelesen, Betreff enthält X, von Y)
  4. Rufen Sie die passenden Nachrichten ab
  5. Analysieren Sie den Inhalt (Header, Text, Anhänge)
  6. Wiederholen Sie in einem Intervall

Python-Beispiel

import imaplib
import email
import time
from email.header import decode_header

def poll_inbox(host, port, user, password, interval=5):
    """Kontinuierlich neue E-Mails über IMAP abrufen."""
    imap = imaplib.IMAP4_SSL(host, port)
    imap.login(user, password)

    while True:
        imap.select("INBOX")
        status, messages = imap.search(None, "UNSEEN")

        for msg_id in messages[0].split():
            status, msg_data = imap.fetch(msg_id, "(RFC822)")
            raw = msg_data[0][1]
            msg = email.message_from_bytes(raw)

            subject = decode_header(msg["Subject"])[0][0]
            if isinstance(subject, bytes):
                subject = subject.decode()

            sender = msg.get("From")
            print(f"Neue E-Mail von {sender}: {subject}")

            # Verarbeiten Sie die E-Mail hier – Codes extrahieren, zur App-Logik weiterleiten, usw.

        time.sleep(interval)

# Verbinden Sie sich mit einem Reusable.Email verwalteten Postfach
poll_inbox(
    host="imap.reusable.email",
    port=993,
    user="[email protected]",
    password="your-password",
    interval=10,
)

Vor- und Nachteile

Vorteile:

  • Standard-Protokoll – funktioniert mit jedem Mail-Server, jeder Sprache
  • Kein öffentlicher Endpunkt erforderlich (Ihr Code initiiert die Verbindung)
  • Vollständiger Zugriff auf alle Nachrichten, Ordner und Metadaten

Nachteile:

  • Polling-Latenz – Sie müssen auf das nächste Intervall warten, um neue Nachrichten zu sehen
  • Nicht echtzeitfähig – neue E-Mails werden erst erkannt, wenn das nächste Poll durchgeführt wird
  • Skalierungsprobleme bei vielen Konten – jedes Konto erfordert seinen eigenen Polling-Loop

Ansatz 2: Webhooks

Bei einem Webhook-Ansatz sendet der Mail-Server eine HTTP-POST-Anfrage an Ihre Anwendung, wenn eine neue E-Mail ankommt. Sie definieren einen öffentlichen Endpunkt, und der Server ruft ihn jedes Mal auf, wenn etwas passiert.

Vorteile:

  • Echtzeitbenachrichtigungen – Sie erfahren sofort von neuen E-Mails
  • Keine Polling-Overhead – nur Rechenleistung bei Bedarf
  • Einfacher für viele Konten zu skalieren

Nachteile:

  • Erfordert einen öffentlichen Endpunkt – Ihre Anwendung muss dem Internet ausgesetzt sein
  • Komplexerer zu implementieren – Sie benötigen einen Web-Server zum Empfangen von Webhooks
  • Zuverlässigkeits-Herausforderungen – was passiert, wenn ein Webhook scheitert?

Ansatz 3: API-Polling

Statt IMAP (ein Protokoll für E-Mail-Clients) verwenden Sie eine REST-API, um neue Nachrichten in einem Intervall abzurufen. Dies ist ähnlich wie IMAP-Polling, aber über HTTP statt IMAP.

Vorteile:

  • Einfacher zu implementieren als IMAP – Standard REST-Aufrufe
  • Keine Firewall-Regeln für IMAP erforderlich
  • Einfacher zu debuggen mit Standard-HTTP-Tools

Nachteile:

  • Polling-Latenz wie IMAP
  • Erfordert API-Keys oder Authentifizierung
  • Begrenzt durch API-Rate-Limits

Welchen Ansatz wählen?

  • IMAP-Polling: Beste für Entwicklungstools, internes Testing, oder Szenarien, wo Sie vollständige E-Mail-Protokoll-Unterstützung benötigen.
  • Webhooks: Beste für Produktions-Systeme, die Echtzeit-Benachrichtigungen benötigen.
  • API-Polling: Beste für einfache Szenarien oder wenn Sie nur wenige E-Mails erwarten.

Reusable.Email verwaltete Postfächer unterstützen vollständiges IMAP für programmgesteuerte Zugriffe – ideal für Tests und Automatisierungen.

Try it free

Get a disposable inbox in seconds

No sign-up required. Just visit an address and it's live. Works with any domain on reusable.email.

Open your inbox →