IMAP: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== IMAP-Protokollgrundlagen == Das '''Internet Message Access Protocol (IMAP)''' ist ein Netzwerkprotokoll, das für den Zugriff auf E-Mails auf einem Mailser…“) |
(kein Unterschied)
|
Aktuelle Version vom 4. Februar 2025, 17:24 Uhr
IMAP-Protokollgrundlagen
Das Internet Message Access Protocol (IMAP) ist ein Netzwerkprotokoll, das für den Zugriff auf E-Mails auf einem Mailserver verwendet wird. Im Gegensatz zu POP3 verbleiben die E-Mails auf dem Server, sodass der Zugriff von mehreren Geräten möglich ist.
Verbindungsaufbau
Der Verbindungsaufbau im IMAP-Protokoll umfasst folgende Schritte:
- Der Client öffnet eine TCP/IP-Verbindung zum IMAP-Server auf Port 143 (Standard-IMAP) oder Port 993 (IMAPS für verschlüsselte Verbindungen).
- TLS-Verschlüsselung kann entweder direkt über Port 993 oder nachträglich über STARTTLS auf Port 143 initiiert werden, um die Kommunikation zu sichern.
Kommunikation
Die Kommunikation zwischen Client und Server im IMAP-Protokoll erfolgt über Befehle und Antworten:
- Der Server sendet nach der Verbindung eine Begrüßungsnachricht mit Statusangabe, z. B. * OK [CAPABILITY IMAP4rev1 ...].
- Der Client authentifiziert sich entweder über einfache Benutzer/Passwort-Anmeldung oder über sichere Mechanismen wie OAuth oder Kerberos.
- IMAP-Befehle werden in der Regel mit einem eindeutigen Tag versehen (z. B. A001 LOGIN user pass), um parallele Anfragen zu ermöglichen.
- Der Server antwortet mit einem Statuscode wie OK, NO oder BAD zur Bestätigung oder Ablehnung einer Anfrage.
E-Mail-Verwaltung
Die Verwaltung von E-Mails im IMAP-Protokoll umfasst folgende Schritte:
- Clients können auf verschiedene Ordner (Mailboxes) zugreifen, z. B. INBOX, Sent, Trash.
- Nachrichten können als gelesen, ungelesen, gelöscht oder mit anderen Flags markiert werden.
- Clients können nur die Kopfzeilen oder vollständige Nachrichten abrufen, um Bandbreite zu sparen.
- IMAP ermöglicht eine bidirektionale Synchronisation, sodass Änderungen auf dem Server für alle Clients sichtbar bleiben.
Nachrichtenabruf
Der Abruf von E-Mails im IMAP-Protokoll erfolgt über spezielle Kommandos:
- Das FETCH-Kommando ruft entweder die gesamte Nachricht oder Teile davon ab (z. B. nur Header oder Anhänge).
- Das SEARCH-Kommando ermöglicht eine serverseitige Suche nach E-Mails basierend auf Kriterien wie Datum, Absender oder Betreff.
- Das STORE-Kommando erlaubt das Setzen oder Entfernen von Flags wie Seen oder Deleted.
Ordnerverwaltung
Die Organisation von E-Mails in IMAP erfolgt über Ordnerstrukturen:
- Clients können neue Ordner mit CREATE erstellen und bestehende Ordner mit DELETE entfernen.
- Das LIST-Kommando zeigt verfügbare Ordner an, während das SELECT-Kommando den Fokus auf einen bestimmten Ordner legt.
- SUBSCRIBE und UNSUBSCRIBE steuern, welche Ordner für den Client sichtbar sind.
Synchronisation
Die Synchronisation von E-Mails in IMAP sorgt dafür, dass Änderungen überall sichtbar bleiben:
- EXPUNGE löscht als gelöscht markierte Nachrichten endgültig.
- UIDVALIDITY und UID helfen Clients, Änderungen effizient zu verfolgen.
- IDLE ermöglicht eine Push-Benachrichtigung für neue Nachrichten, ohne dass der Client ständig Abfragen senden muss.
Beendigung
Die Beendigung der IMAP-Verbindung erfolgt über folgende Schritte:
- Der Client sendet das LOGOUT-Kommando, um die Sitzung zu beenden.
- Der Server antwortet mit BYE und schließt die Verbindung.
IMAP ist besonders für Nutzer geeignet, die ihre E-Mails auf mehreren Geräten verwalten möchten, da alle Änderungen auf dem Server gespeichert und synchronisiert werden.
Beispiele
telnet imap.gmail.com 143 A001 LOGIN benutzer passwort A002 LIST "" "*"
openssl s_client -connect imap.gmail.com:993 A001 LOGIN benutzer passwort A002 SELECT INBOX