IMAP
IMAP (Internet Message Access Protocol) ist ein Protokoll zum Abrufen und Verwalten von E-Mails auf einem Mailserver. Im Gegensatz zu SMTP, das für den Versand zuständig ist, ermöglicht IMAP den Zugriff auf E-Mails direkt auf dem Server, ohne sie herunterladen zu müssen. Das macht IMAP zur idealen Wahl, wenn du deine E-Mails von mehreren Geräten aus lesen möchtest.
IMAP arbeitet auf der Anwendungsschicht des OSI-Modells und nutzt standardmäßig Port 143 für unverschlüsselte Verbindungen sowie Port 993 für verschlüsselte Verbindungen mit TLS. Die aktuelle Version IMAP4rev1 wurde im RFC 3501 spezifiziert und 2021 durch RFC 9051 (IMAP4rev2) aktualisiert.
Funktionsweise von IMAP
IMAP basiert auf dem Client-Server-Modell. Dein E-Mail-Client (zum Beispiel Thunderbird, Outlook oder die Mail-App auf deinem Smartphone) stellt eine Verbindung zum Mailserver her und kann dann verschiedene Operationen durchführen. Der entscheidende Unterschied zu anderen Protokollen: Die E-Mails bleiben auf dem Server gespeichert.
Eine typische IMAP-Sitzung läuft so ab:
- Verbindungsaufbau: Der Client verbindet sich über TCP mit dem IMAP-Server
- Authentifizierung: Der Nutzer meldet sich mit Benutzername und Passwort an
- Postfach auswählen: Der Client wählt ein Postfach (z.B. INBOX) aus
- Nachrichten abrufen: Header und Inhalte werden bei Bedarf vom Server geladen
- Aktionen durchführen: Nachrichten können gelesen, verschoben, gelöscht oder markiert werden
- Verbindung beenden: Die Sitzung wird mit LOGOUT ordnungsgemäß geschlossen
Serverseitige Speicherung
Bei IMAP verbleiben deine E-Mails auf dem Server. Das bedeutet: Wenn du eine E-Mail auf deinem Smartphone als gelesen markierst, ist sie auch auf deinem Laptop als gelesen markiert. Löschst du eine Nachricht, verschwindet sie auf allen Geräten. Diese Synchronisation funktioniert, weil alle Clients auf dieselben Daten auf dem Server zugreifen.
IMAP verwendet zwei Arten von Nachrichtenkennungen: Sequenznummern (1, 2, 3...) und UIDs (Unique Identifiers). Während Sequenznummern sich ändern können, wenn Nachrichten gelöscht werden, bleiben UIDs innerhalb eines Postfachs eindeutig. Das ermöglicht Clients, ihren lokalen Cache effizient mit dem Server zu synchronisieren.
Ordnerstruktur und Flags
Ein großer Vorteil von IMAP ist die Unterstützung von Ordnern (im IMAP-Jargon "Mailboxes" genannt). Du kannst Ordner erstellen, umbenennen und löschen. Nachrichten lassen sich zwischen Ordnern verschieben oder kopieren. Typische Ordner sind INBOX, Sent, Drafts, Trash und Spam.
Zusätzlich unterstützt IMAP Flags, also Markierungen für Nachrichten:
- \Seen: Nachricht wurde gelesen
- \Answered: Nachricht wurde beantwortet
- \Flagged: Nachricht wurde als wichtig markiert
- \Deleted: Nachricht ist zum Löschen vorgemerkt
- \Draft: Nachricht ist ein Entwurf
IMAP-Ports und Verschlüsselung
IMAP nutzt zwei Well-Known Ports für die Kommunikation:
| Port | Bezeichnung | Sicherheit |
|---|---|---|
| 143 | IMAP | Unverschlüsselt oder STARTTLS |
| 993 | IMAPS | Implizite TLS-Verschlüsselung |
Port 143 ist der ursprüngliche IMAP-Port. Moderne Server bieten hier STARTTLS an, sodass die Verbindung nach dem initialen Handshake auf eine verschlüsselte TLS-Verbindung hochgestuft werden kann.
Port 993 (IMAPS) verwendet implizites TLS. Das bedeutet, die Verbindung ist von Anfang an verschlüsselt. Dieser Port ist heute der Standard für sichere E-Mail-Kommunikation und sollte immer bevorzugt werden.
Wichtige IMAP-Befehle
IMAP verwendet textbasierte Befehle. Jeder Befehl beginnt mit einem Tag (z.B. "a001"), gefolgt vom eigentlichen Kommando. Der Server antwortet mit demselben Tag, sodass Client und Server auch bei parallelen Anfragen die Zuordnung behalten.
| Befehl | Beschreibung |
|---|---|
| LOGIN | Authentifizierung mit Benutzername und Passwort |
| SELECT | Öffnet ein Postfach (z.B. INBOX) zum Lesen und Schreiben |
| EXAMINE | Öffnet ein Postfach nur zum Lesen |
| FETCH | Ruft Nachrichten oder Teile davon ab |
| SEARCH | Durchsucht das Postfach nach bestimmten Kriterien |
| STORE | Setzt oder entfernt Flags bei Nachrichten |
| COPY | Kopiert Nachrichten in einen anderen Ordner |
| EXPUNGE | Löscht alle mit \Deleted markierten Nachrichten endgültig |
| LOGOUT | Beendet die IMAP-Sitzung |
Beispiel einer IMAP-Sitzung
So sieht eine vereinfachte IMAP-Sitzung aus:
S: * OK IMAP4rev1 Service Ready
C: a001 LOGIN benutzer@example.com geheim123
S: a001 OK LOGIN completed
C: a002 SELECT INBOX
S: * 42 EXISTS
S: * 2 RECENT
S: * FLAGS (\Seen \Answered \Flagged \Deleted \Draft)
S: a002 OK [READ-WRITE] SELECT completed
C: a003 FETCH 42 (BODY[HEADER.FIELDS (FROM SUBJECT DATE)])
S: * 42 FETCH (BODY[HEADER.FIELDS (FROM SUBJECT DATE)] {98}
S: From: absender@example.org
S: Subject: Wichtige Nachricht
S: Date: Fri, 06 Dec 2024 10:30:00 +0100
S: )
S: a003 OK FETCH completed
C: a004 LOGOUT
S: * BYE IMAP4rev1 Server logging out
S: a004 OK LOGOUT completed
IMAP IDLE: Push-Benachrichtigungen
Standardmäßig muss ein E-Mail-Client regelmäßig beim Server nachfragen, ob neue Nachrichten angekommen sind (Polling). Die IDLE-Erweiterung, spezifiziert im RFC 2177, löst dieses Problem elegant.
Mit IDLE kann der Client dem Server mitteilen, dass er auf Benachrichtigungen wartet. Der Server hält die Verbindung offen und informiert den Client sofort, wenn neue E-Mails eintreffen oder sich der Postfachinhalt ändert. Das spart Bandbreite und Akku (bei mobilen Geräten) und ermöglicht quasi-sofortige E-Mail-Zustellung – ähnlich wie Push-Benachrichtigungen bei Messaging-Apps.
IMAP vs. POP3: Der Vergleich
IMAP und POP3 (Post Office Protocol, Version 3, spezifiziert im RFC 1939) sind beide Protokolle zum Abrufen von E-Mails, verfolgen aber grundlegend unterschiedliche Ansätze. Der wichtigste Unterschied: Bei POP3 werden E-Mails heruntergeladen und typischerweise vom Server gelöscht, bei IMAP bleiben sie auf dem Server.
| Aspekt | IMAP | POP3 |
|---|---|---|
| Speicherort | Server | Lokal (nach Download) |
| Synchronisation | Ja, über alle Geräte | Nein |
| Mehrere Geräte | Optimal geeignet | Problematisch |
| Ordnerstruktur | Vollständig unterstützt | Nicht vorhanden |
| Serverseitige Suche | Ja | Nein |
| Offline-Zugriff | Eingeschränkt (Cache) | Vollständig |
| Speicherplatz Server | Wird belegt | Wird nach Download frei |
| Port (unverschlüsselt) | 143 | 110 |
| Port (TLS) | 993 | 995 |
Wann IMAP wählen?
IMAP ist die richtige Wahl, wenn du deine E-Mails von mehreren Geräten aus abrufen möchtest. Egal ob Smartphone, Tablet oder Computer – alle Geräte zeigen denselben Stand. Auch für Unternehmensumgebungen ist IMAP Standard, da es zentrale Verwaltung, Backup und Compliance ermöglicht.
Wann POP3 wählen?
POP3 kann sinnvoll sein, wenn du nur ein Gerät nutzt, begrenzten Speicherplatz auf dem Server hast oder E-Mails dauerhaft lokal archivieren möchtest. Auch bei sehr langsamen oder instabilen Internetverbindungen hat POP3 Vorteile, da du nach dem Download offline arbeiten kannst.
Fazit: IMAP ist heute Standard
In der heutigen Multi-Device-Welt ist IMAP klar die bevorzugte Wahl. Die Vorteile der Synchronisation überwiegen die Nachteile (Serverabhängigkeit, Speicherplatzbedarf) bei weitem. Alle großen E-Mail-Anbieter wie Gmail, Outlook.com und Apple iCloud setzen standardmäßig auf IMAP. POP3 existiert noch für Spezialfälle und Legacy-Systeme, spielt aber in der modernen E-Mail-Infrastruktur eine untergeordnete Rolle.
Sicherheit bei IMAP
IMAP wurde in den 1980er Jahren entwickelt, als Sicherheit noch keine Priorität hatte. Daher sind heute zusätzliche Maßnahmen unverzichtbar:
- TLS-Verschlüsselung: Nutze immer Port 993 (IMAPS) oder STARTTLS auf Port 143
- Starke Authentifizierung: Moderne Server unterstützen OAuth2 statt einfacher Passwörter
- Zwei-Faktor-Authentifizierung: Viele Anbieter erfordern App-spezifische Passwörter
- Zugriffskontrolle: Server können IP-Bereiche einschränken und fehlgeschlagene Logins begrenzen
Für die Authentifizierung unterstützt IMAP verschiedene Mechanismen wie PLAIN, LOGIN, CRAM-MD5 und das moderne OAuth2. PLAIN und LOGIN übertragen Zugangsdaten im Klartext und sollten nur über verschlüsselte Verbindungen verwendet werden.
IMAP in der Praxis
Als Fachinformatiker für Systemintegration wirst du regelmäßig E-Mail-Systeme einrichten und warten. Dazu gehört die Konfiguration von IMAP-Servern wie Dovecot, Microsoft Exchange oder Zimbra. Du musst wissen, wie du Postfächer anlegst, Speicherquoten verwaltest und Probleme bei der Synchronisation diagnostizierst.
Für Anwendungsentwickler ist IMAP relevant, wenn Anwendungen E-Mails abrufen und verarbeiten müssen. Beispiele sind Support-Ticket-Systeme, die eingehende E-Mails automatisch in Tickets umwandeln, oder Monitoring-Tools, die auf E-Mail-Benachrichtigungen reagieren. Hierfür stehen in allen gängigen Programmiersprachen IMAP-Bibliotheken zur Verfügung.