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.

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
- Öffnen Sie eine IMAP-Verbindung zum Mail-Server
- Wählen Sie den Inbox (oder einen bestimmten Ordner)
- Suchen Sie Nachrichten, die Ihren Kriterien entsprechen (ungelesen, Betreff enthält X, von Y)
- Rufen Sie die passenden Nachrichten ab
- Analysieren Sie den Inhalt (Header, Text, Anhänge)
- 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 →

