Zum Inhalt springen

Abholen

Warum dieser Schritt

Der Briefkasten, den alle öffnen können: IMAP

Der erste konkrete Schritt beginnt hier: die Emails holen.

Eine Email geht ein. Sie liegt auf dem Mailserver. Jetzt muss etwas sie von dort abholen, damit das email2rag-System sie verarbeiten kann. Genau darum geht es in diesem Schritt der Pipeline.

So sieht der Abruf aus

Ein Mailserver lässt sich wie ein Briefkasten vorstellen, auf den mehrere Personen zugreifen können. Jeder kann reinschauen, ohne den Brief herauszunehmen. Der Brief bleibt liegen, bis jemand ihn ausdrücklich als gelesen markiert oder archiviert. Genau so funktioniert IMAP (en: Internet Message Access Protocol): Emails bleiben auf dem Server, der Mailserver ist der Ort der Wahrheit, und beliebig viele Clients (Smartphone, Laptop, andere Programme) können parallel darauf zugreifen.

Im email2rag-System ist das Smartphone und der Laptop nicht beteiligt. Es ist ein kleines Programm, das sich wie ein zusätzlicher Mail-Client verhält. Es öffnet regelmäßig den Briefkasten, schaut rein und holt sich, was neu ist.

MailserverOrt der Wahrheit
SmartphoneMail-App
LaptopOutlook, Thunderbird
email2ragAutomatik-Client
Webmailweitere Clients

Warum IMAP und nicht POP3

Es gibt ein älteres Protokoll, POP3 (en: Post Office Protocol). POP3 arbeitet anders: Emails werden vom Server heruntergeladen und können dort anschließend gelöscht werden, müssen es aber nicht. Das ist für einen einzelnen Mail-Client in Ordnung, aber problematisch, wenn mehrere Zugriffe stattfinden sollen.

Für das email2rag-System wäre POP3 ein Risiko: Nutzt jemand zusätzlich Outlook oder Thunderbird, würde das System die Emails zuerst herunterladen und in den anderen Programmen wären sie weg. Mit IMAP bleiben die Emails auf dem Server, Deine gewohnten Mail-Programme sehen sie weiterhin.

POP3: Email wird heruntergeladen und vom Server entfernt
Mailserverleer nach Abruf
email2rag: hat Emailzuerst geholt
Outlook: sieht nichts mehrzu spät
IMAP: Email bleibt auf dem Server
Mailserverbehält Email
email2rag: sieht Emailverarbeitet
Outlook: sieht Emaildieselbe Nachricht

Polling: regelmäßig nachfragen

Das email2rag-System weiß nicht von sich aus, wann eine neue Email ankommt. Es fragt deshalb regelmäßig nach: "Gibt es etwas Neues?". Dieses Nachfragen heißt Polling (en: regelmäßiges Abfragen).

Der Poller verbindet sich mit dem Mailserver, prüft den Posteingang, holt neue Nachrichten ab und schließt die Verbindung wieder. Dann passiert eine Weile nichts. Dann wieder. Und so weiter.

Abfrageneue Emails?
WartenPause
Abfrageneue Emails?
WartenPause
Abfrageneue Emails?
Regelmäßiger Rhythmus

Die Alternative: IMAP IDLE

Es gäbe eine Alternative zum Polling: IMAP IDLE. Dabei hält der Client eine permanente Verbindung zum Mailserver offen, und der Server meldet sich von selbst, wenn etwas Neues ankommt. Keine Wartezeit zwischen Abfragen.

Das klingt besser, hat aber Nachteile: Die Verbindung kann abbrechen, der Server muss die IDLE-Erweiterung unterstützen, und der Code wird komplexer. Für die erste Version reicht Polling. Eine spätere Version des Systems kann auf IDLE umstellen, wenn die Echtzeit-Anforderung steigt.