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.
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.
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.
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.