IMAP: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
||
(43 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''IMAP''' ('''I'''nternet '''M'''essage '''A'''ccess '''P'''rotocol''') stellt ein [[Netzwerkdateisystem]] für [[E-Mail]]s zur Verfügung''' | ||
== Beschreibung == | == Beschreibung == | ||
IMAP ist ein [[Netzwerkprotokoll]] der OSI-Schicht 7 | |||
[[ | |||
{| class="wikitable float" | |||
{| class="wikitable float | |||
|- | |- | ||
!colspan="2" style="background:#C0C0FF; font-size:larger;"| Internet Message Access Protocol | !colspan="2" style="background:#C0C0FF; font-size:larger;"| Internet Message Access Protocol | ||
|- | |- | ||
| '''Familie | | '''Familie''' | ||
| [[ | | [[Internetprotokolle]] | ||
|- | |- | ||
| '''Einsatzgebiet | | '''Einsatzgebiet''' | ||
| Lesen und Verwalten von E-Mails | | Lesen und Verwalten von E-Mails | ||
|- | |- | ||
| '''[[Port (Protokoll)|Ports]] | | '''[[Port (Protokoll)|Ports]]''' || 143/TCP<ref>http://www.iana.org/assignments/port-numbers</ref><br /> 993/TCP (nur mit [[Transport Layer Security|TLS]]) | ||
|- | |- | ||
|colspan="2" style="text-align:center"| | |colspan="2" style="text-align:center"| | ||
{{Netzwerk-TCP-IP-Anwendungsprotokoll|IMAP|}} | {{Netzwerk-TCP-IP-Anwendungsprotokoll|IMAP|}} | ||
|- | |- | ||
| '''Standard | | '''Standard''' | ||
| RFC 9051 | | RFC 9051 | ||
|} | |} | ||
=== Entwicklung === | |||
IMAP wurde in den 1980er Jahren mit dem Aufkommen von [[Personal Computer]]n entworfen, um bei der Mail-Kommunikation Abhängigkeiten von einzelnen [[Client]]-Rechnern aufzulösen.<ref name="IMAP2" /> | |||
IMAP wurde in den 1980er Jahren mit dem Aufkommen von [[Personal Computer]]n entworfen, um bei der Mail-Kommunikation Abhängigkeiten von einzelnen [[Client]]-Rechnern aufzulösen.<ref name="IMAP2" /> Zu diesem Zweck erweitert IMAP die Funktionen und Verfahren des [[Post Office Protocol]] (POP) so, dass Benutzer ihre Mails, Ordnerstrukturen und Einstellungen auf den [[Mailserver|(Mail-)Servern]] speichern und belassen können. Während bei der Verwendung von POP die Nachrichten entweder nach dem Abruf gelöscht oder beim nächsten Abruf erneut empfangen werden, ermöglicht IMAP eine zentrale Verwaltung mit Suchfunktion und serverseitiger „Gelesen“-Markierung. | * Zu diesem Zweck erweitert IMAP die Funktionen und Verfahren des [[Post Office Protocol]] (POP) so, dass Benutzer ihre Mails, Ordnerstrukturen und Einstellungen auf den [[Mailserver|(Mail-)Servern]] speichern und belassen können. | ||
* Während bei der Verwendung von POP die Nachrichten entweder nach dem Abruf gelöscht oder beim nächsten Abruf erneut empfangen werden, ermöglicht IMAP eine zentrale Verwaltung mit Suchfunktion und serverseitiger „Gelesen“-Markierung. | |||
=== Unterschiede zum Post Office Protokoll === | |||
Im Gegensatz zum [[Post Office Protocol]] ermöglicht IMAP eine Verwaltung von Nachrichtenordnern auf dem Server. | |||
* Wenn eine Nachricht per IMAP als „gelesen“ markiert wurde, ist diese Markierung auch für alle anderen Clients sichtbar. | |||
* Gelöschte Nachrichten verschwinden von allen synchronisierten Geräten. | |||
Nachrichten können direkt auf dem Server durchsucht werden, sodass Clients keine vollständige Kopie aller Ordner vorhalten müssen, um einzelne Nachrichten zu finden. | |||
* Die serverseitige Suchfunktion und die zentrale Speicherung aller Nachrichten verlagert Rechenarbeit und Speicherplatzverbrauch von den Clients auf den Server. | |||
== | === Eigenschaften === | ||
IMAP ist ein textbasiertes Protokoll zum Zugriff auf [[E-Mail]]s, die sich auf einem [[Mailserver]] befinden. Ein [[E-Mail-Programm|Mail-Client]] stellt Anfragen an den Server nur nach aktuell benötigten Informationen. Möchte ein Nutzer z. B. den Inhalt eines Ordners sehen, holt sich der Client eine aktuelle Nachrichtenliste des betreffenden Ordners vom Server. Soll der Inhalt einer Mail angezeigt werden, wird dieser vom Server geladen. | IMAP ist ein textbasiertes Protokoll zum Zugriff auf [[E-Mail]]s, die sich auf einem [[Mailserver]] befinden. | ||
Da alle Daten weiterhin auf dem Server verbleiben, zeigen – | * Ein [[E-Mail-Programm|Mail-Client]] stellt Anfragen an den Server nur nach aktuell benötigten Informationen. | ||
* Möchte ein Nutzer z. B. den Inhalt eines Ordners sehen, holt sich der Client eine aktuelle Nachrichtenliste des betreffenden Ordners vom Server. | |||
* Soll der Inhalt einer Mail angezeigt werden, wird dieser vom Server geladen. | |||
Da alle Daten weiterhin auf dem Server verbleiben, zeigen – auch bei der Benutzung von mehreren Clients – alle den gleichen, aktuellen Datenbestand einer Mailbox an. | |||
* Zudem wird eine lokale Speicherung der Daten unnötig und erweiterte Möglichkeiten wie das Durchsuchen von Mails werden serverseitig durchgeführt. | |||
Mit IMAP ist auch der Zugriff auf verschiedene Ordner innerhalb einer Mailbox möglich. Viele Server können eingehende Mails auch direkt in verschiedene Ordner einsortieren ([[Mailfilter|filtern]]). | Mit IMAP ist auch der Zugriff auf verschiedene Ordner innerhalb einer Mailbox möglich. | ||
* Viele Server können eingehende Mails auch direkt in verschiedene Ordner einsortieren ([[Mailfilter|filtern]]). | |||
Durch das Setzen von [[Access Control List|Zugriffsrechten]] für Ordner einer Mailbox können auch mehrere [[Benutzerkonto|Benutzer]] gleichzeitig auf dieselben [[Daten]] zugreifen. | Durch das Setzen von [[Access Control List|Zugriffsrechten]] für Ordner einer Mailbox können auch mehrere [[Benutzerkonto|Benutzer]] gleichzeitig auf dieselben [[Daten]] zugreifen. | ||
Die Erweiterung ''IMAP IDLE'' ermöglicht eine sofortige Benachrichtigung an Clients ([[Push-Model|pushing]]), wenn eine neue Mail eintrifft. So wird unnötiger [[Datenverkehr]] vermieden, der bei ständigen Anfragen ([[Polling (Informatik)|polling]]) eines Clients anfallen würde. | Die Erweiterung ''IMAP IDLE'' ermöglicht eine sofortige Benachrichtigung an Clients ([[Push-Model|pushing]]), wenn eine neue Mail eintrifft. | ||
Verfügt man über keine [[Internetverbindung]] zu seinem Mailserver, ist in der Regel auch kein Zugriff mehr auf die Mails möglich. Einige Clients lösen dieses Problem, indem sie lokale Kopien der Mails anlegen, auf die sie im ''[[Offline]]-Modus'' zurückgreifen können. Bei wiederhergestellter Internetverbindung werden die Daten wieder mit dem Mailserver abgeglichen ([[Replikation (Datenverarbeitung)|synchronisiert]]). | * So wird unnötiger [[Datenverkehr]] vermieden, der bei ständigen Anfragen ([[Polling (Informatik)|polling]]) eines Clients anfallen würde. | ||
Verfügt man über keine [[Internetverbindung]] zu seinem Mailserver, ist in der Regel auch kein Zugriff mehr auf die Mails möglich. | |||
* Einige Clients lösen dieses Problem, indem sie lokale Kopien der Mails anlegen, auf die sie im ''[[Offline]]-Modus'' zurückgreifen können. | |||
* Bei wiederhergestellter Internetverbindung werden die Daten wieder mit dem Mailserver abgeglichen ([[Replikation (Datenverarbeitung)|synchronisiert]]). | |||
Wegen der zentralen Speicherung der Daten auf einem externen Server muss auch der eigene [[Datenschutz]] berücksichtigt werden. Die Verbindung zum Server sollte deshalb [[ | Wegen der zentralen Speicherung der Daten auf einem externen Server muss auch der eigene [[Datenschutz]] berücksichtigt werden. | ||
* Die Verbindung zum Server sollte deshalb [[Kryptografie|verschlüsselt]] werden. | |||
Beispiel einer IMAP-Sitzung (IMAP4rev1-Beispiel aus RFC 3501, 8. Kapitel – gekürzt): | Beispiel einer IMAP-Sitzung (IMAP4rev1-Beispiel aus RFC 3501, 8. Kapitel – gekürzt): | ||
Zeile 122: | Zeile 88: | ||
|style="background:#F0F0F0"|18 Mails vorhanden<br /> | |style="background:#F0F0F0"|18 Mails vorhanden<br /> | ||
definierte [[Flag (Informatik)|Flags]]<br /> | definierte [[Flag (Informatik)|Flags]]<br /> | ||
2 dringliche Mails (z. B. neue Mails)<br /> | 2 dringliche Mails (z. B. neue Mails)<br /> | ||
Mail Nr. 17 ist ungelesen. Alle älteren wurden bereits gelesen.<br /> | Mail Nr. 17 ist ungelesen. | ||
* Alle älteren wurden bereits gelesen.<br /> | |||
Client darf Änderungen an Mails durchführen | Client darf Änderungen an Mails durchführen | ||
|- | |- | ||
Zeile 162: | Zeile 130: | ||
|style="background:#C0C0FF; font-family:monospace;"|a004 fetch 12 body[header] | |style="background:#C0C0FF; font-family:monospace;"|a004 fetch 12 body[header] | ||
|style="background:#C0C0FF; font-family:monospace;"| | |style="background:#C0C0FF; font-family:monospace;"| | ||
|style="background:#F0F0F0"|Client möchte alle Header zu Mail Nr. | |style="background:#F0F0F0"|Client möchte alle Header zu Mail Nr. 12 | ||
|- | |- | ||
|style="background:#FFFFB0; font-family:monospace;"| | |style="background:#FFFFB0; font-family:monospace;"| | ||
Zeile 180: | Zeile 148: | ||
|style="background:#C0C0FF; font-family:monospace;"|a005 store 12 +flags \deleted | |style="background:#C0C0FF; font-family:monospace;"|a005 store 12 +flags \deleted | ||
|style="background:#C0C0FF; font-family:monospace;"| | |style="background:#C0C0FF; font-family:monospace;"| | ||
|style="background:#F0F0F0"|Mail Nr. | |style="background:#F0F0F0"|Mail Nr. 12 als gelöscht markieren | ||
|- | |- | ||
|style="background:#FFFFB0; font-family:monospace;"| | |style="background:#FFFFB0; font-family:monospace;"| | ||
Zeile 197: | Zeile 165: | ||
== Clients == | == Clients == | ||
IMAP wird inzwischen von fast allen gängigen [[E-Mail-Programm]]en unterstützt. | IMAP wird inzwischen von fast allen gängigen [[E-Mail-Programm]]en unterstützt. | ||
Allerdings bestehen große Unterschiede im Grad der Unterstützung. Viele Clients unterstützen nur Basisfunktionen für den Nachrichtenabruf (was den meisten Nutzern ausreicht). | Allerdings bestehen große Unterschiede im Grad der Unterstützung. | ||
Nur wenige Programme nutzen den vollen Funktionsumfang, den IMAP-Server bieten. Dazu gehört zum Beispiel die Rechtevergabe zum gemeinsamen [[Zugriffskontrolle|Zugriff]] verschiedener Benutzer auf einen Ordner. | * Viele Clients unterstützen nur Basisfunktionen für den Nachrichtenabruf (was den meisten Nutzern ausreicht). | ||
Nur wenige Programme nutzen den vollen Funktionsumfang, den IMAP-Server bieten. | |||
* Dazu gehört zum Beispiel die Rechtevergabe zum gemeinsamen [[Zugriffskontrolle|Zugriff]] verschiedener Benutzer auf einen Ordner. | |||
Auswahl von Clients mit erweiterter IMAP-Unterstützung: | Auswahl von Clients mit erweiterter IMAP-Unterstützung: | ||
Zeile 223: | Zeile 193: | ||
== Server == | == Server == | ||
Inzwischen unterstützen viele Mailserver IMAP<!-- aber all die reinen MTA nicht -->. Einige Provider unterdrücken jedoch die Funktionalität (oder verlangen ein erhöhtes Entgelt), da bei IMAP mehr Daten auf dem Server gespeichert bleiben und auch die durchschnittliche Übertragungsmenge steigt. | Inzwischen unterstützen viele Mailserver IMAP<!-- aber all die reinen MTA nicht -->. | ||
* Einige Provider unterdrücken jedoch die Funktionalität (oder verlangen ein erhöhtes Entgelt), da bei IMAP mehr Daten auf dem Server gespeichert bleiben und auch die durchschnittliche Übertragungsmenge steigt. | |||
[[Cyrus (Server)|Cyrus]] war der erste Server mit einer Version von IMAP, die als Internetstandard empfohlen war.<ref>{{cite web | [[Cyrus (Server)|Cyrus]] war der erste Server mit einer Version von IMAP, die als Internetstandard empfohlen war.<ref>{{cite web | ||
Zeile 231: | Zeile 202: | ||
|publisher = University of Washington | |publisher = University of Washington | ||
|accessdate = 2012-01-20 | |accessdate = 2012-01-20 | ||
}}</ref> [[UW IMAP]] zog im selben Jahr nach und war zuvor [[Proof of Concept]] von IMAP. Dieser Server von der [[University of Washington]] erweitert IMAP, was aber nicht dokumentiert und trotzdem von der [[Carnegie Mellon University]] in ihren Cyrus übernommen wurde.<ref>{{cite web | }}</ref> [[UW IMAP]] zog im selben Jahr nach und war zuvor [[Proof of Concept]] von IMAP. | ||
* Dieser Server von der [[University of Washington]] erweitert IMAP, was aber nicht dokumentiert und trotzdem von der [[Carnegie Mellon University]] in ihren Cyrus übernommen wurde.<ref>{{cite web | |||
| url = http://groups.google.com/group/comp.mail.pine/msg/acfc1caf3b2c0264 | | url = http://groups.google.com/group/comp.mail.pine/msg/acfc1caf3b2c0264 | ||
| title = Pine won't search my IMAP mail | | title = Pine won't search my IMAP mail | ||
Zeile 251: | Zeile 223: | ||
}}</ref> Dieses Vorgehen der beiden Universitäten bei den ersten Implementierungen bewirkte, dass [[Konformität]] und [[Kompatibilität (Technik)|Kompatibilität]] bei IMAP notorisch strittig ist. | }}</ref> Dieses Vorgehen der beiden Universitäten bei den ersten Implementierungen bewirkte, dass [[Konformität]] und [[Kompatibilität (Technik)|Kompatibilität]] bei IMAP notorisch strittig ist. | ||
Mit dem [[Courier Mail Server]] kam die Abkehr vom [[mbox]]-Konzept, das inzwischen als untauglich gilt. Courier speichert die E-Mails nach dem [[Maildir]]-Konzept.<ref>{{cite web | Mit dem [[Courier Mail Server]] kam die Abkehr vom [[mbox]]-Konzept, das inzwischen als untauglich gilt. | ||
* Courier speichert die E-Mails nach dem [[Maildir]]-Konzept.<ref>{{cite web | |||
| url = http://books.google.com/books?id=DpvCKQj5DMUC&printsec=frontcover&hl=de#v=onepage&q&f=false | | url = http://books.google.com/books?id=DpvCKQj5DMUC&printsec=frontcover&hl=de#v=onepage&q&f=false | ||
| title = The book of IMAP: building a mail server with Courier and Cyrus | | title = The book of IMAP: building a mail server with Courier and Cyrus | ||
Zeile 287: | Zeile 260: | ||
* [[Zarafa (Software)|Zarafa]] | * [[Zarafa (Software)|Zarafa]] | ||
}} | }} | ||
== Authentifizierung == | == Authentifizierung == | ||
Der Server kann den Zugriff für nicht-[[Autorisierung|autorisierte]] Benutzer auf eine Mailbox verweigern. In jedem Fall muss sich der Nutzer [[Authentifizierung|authentifizieren]], bevor er Zugriff auf Mails erlangen kann. Das geschieht, indem er sich mit [[Benutzername]] und [[Kennwort|Passwort]] anmeldet. Das Passwort wird dabei auf IMAP-Protokoll-Ebene im [[Klartext ( | Der Server kann den Zugriff für nicht-[[Autorisierung|autorisierte]] Benutzer auf eine Mailbox verweigern. | ||
* In jedem Fall muss sich der Nutzer [[Authentifizierung|authentifizieren]], bevor er Zugriff auf Mails erlangen kann. | |||
* Das geschieht, indem er sich mit [[Benutzername]] und [[Kennwort|Passwort]] anmeldet. | |||
* Das Passwort wird dabei auf IMAP-Protokoll-Ebene im [[Klartext (Kryptografie)|Klartext]] übertragen. | |||
* Mailserver können deshalb Clients verbieten, das Passwort zu übertragen, falls zuvor keine verschlüsselte Sitzung aufgebaut wurde. <!--LOGINDISABLED siehe RFC 2595 --> | |||
Alternativ ist auch die Verwendung anderer Netzwerk-Authentifikationsprotokolle (z. B. [[GSSAPI]], [[Kerberos (Informatik)|Kerberos]]) möglich. <!-- siehe RFC 1731 --> | Alternativ ist auch die Verwendung anderer Netzwerk-Authentifikationsprotokolle (z. B. [[GSSAPI]], [[Kerberos (Informatik)|Kerberos]]) möglich. <!-- siehe RFC 1731 --> | ||
== | == Kryptografie == | ||
Um die Daten während der Übertragung vor Dritten zu schützen, kann die Datenverbindung mittels [[Secure Sockets Layer|SSL/TLS]] [[Kryptografie|verschlüsselt]] werden. | |||
* Dafür existieren zwei unterschiedliche Methoden: | |||
Um die Daten während der Übertragung vor Dritten zu schützen, kann die Datenverbindung mittels [[Secure Sockets Layer|SSL/TLS]] [[ | |||
=== IMAPS === | === IMAPS === | ||
<!-- RFC 2595 und RFC 8314--> | <!-- RFC 2595 und RFC 8314--> | ||
Bei der Verwendung von IMAPS wird die Verbindung zum Server bereits während des Verbindungsaufbaus durch [[Transport Layer Security|SSL]] verschlüsselt. Damit der Server das erkennt, muss ein anderer Port verwendet werden. Dafür wurde der Port | Bei der Verwendung von IMAPS wird die Verbindung zum Server bereits während des Verbindungsaufbaus durch [[Transport Layer Security|SSL]] verschlüsselt. | ||
* Damit der Server das erkennt, muss ein anderer Port verwendet werden. | |||
* Dafür wurde der Port 993 reserviert. | |||
Nach dem Aufbau der SSL-Verbindung wird mindestens IMAPv4 verwendet. Die SSL-Schicht ist für das IMAP-Protokoll [[Transparenz (Computersystem)|transparent]], d. | Nach dem Aufbau der SSL-Verbindung wird mindestens IMAPv4 verwendet. | ||
* Die SSL-Schicht ist für das IMAP-Protokoll [[Transparenz (Computersystem)|transparent]], d. h., es werden keine Änderungen am IMAP-Protokoll vorgenommen. | |||
In RFC 8314 wird die Verwendung von IMAPS gegenüber STARTTLS und gänzlich unverschlüsseltem IMAP bevorzugt. | In RFC 8314 wird die Verwendung von IMAPS gegenüber STARTTLS und gänzlich unverschlüsseltem IMAP bevorzugt. | ||
== | === STARTTLS === | ||
<!-- RFC 3501 und RFC 2595 --> | |||
Nach dem Aufbau einer unverschlüsselten Datenverbindung mit dem Server (Port 143) kann mittels des Kommandos [[STARTTLS]] eine verschlüsselte Sitzung initiiert werden, sodass alle nachfolgend versendeten Daten über diese Verbindung nur noch verschlüsselt übertragen werden. | |||
* Diese Protokollerweiterung ist in der Protokollspezifikation fest vorgesehen | |||
== Installation == | |||
== Aufruf == | |||
=== Parameter === | |||
=== Optionen === | |||
=== Umgebung === | |||
=== Rückgabewert === | |||
== Konfiguration == | |||
=== Dateien === | |||
== | == Anwendung == | ||
Die Dokumentation von IMAP setzt sich aus einer Vielzahl von grundlegenden, ergänzenden oder erweiternden [[Request for Comments|RFC]] zusammen. | == Sicherheit == | ||
== Dokumentation == | |||
=== RFC === | |||
Die Dokumentation von IMAP setzt sich aus einer Vielzahl von grundlegenden, ergänzenden oder erweiternden [[Request for Comments|RFC]] zusammen. | |||
* RFC 1731 – IMAP4 Authentication Mechanisms | * RFC 1731 – IMAP4 Authentication Mechanisms | ||
* RFC 1732 – IMAP4 Compatibility With IMAP2 And IMAP2BIS | * RFC 1732 – IMAP4 Compatibility With IMAP2 And IMAP2BIS | ||
Zeile 448: | Zeile 363: | ||
* RFC 7162 – IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC) | * RFC 7162 – IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC) | ||
* RFC 7377 – IMAP4 Multimailbox SEARCH Extension | * RFC 7377 – IMAP4 Multimailbox SEARCH Extension | ||
== Literatur == | === Man-Page === | ||
=== Info-Pages === | |||
=== Siehe auch === | |||
=== Literatur === | |||
# Peer Heinlein, Peer Hartleben: ''POP3 und IMAP – Mailserver mit Courier und Cyrus''. Open Source Press, September 2007, ISBN 978-3-937514-11-6 | |||
== Links == | |||
=== Projekt === | |||
=== Weblinks === | |||
[[Kategorie: | [[Kategorie:IMAP]] |
Aktuelle Version vom 12. November 2024, 18:43 Uhr
IMAP (Internet Message Access Protocol) stellt ein Netzwerkdateisystem für E-Mails zur Verfügung
Beschreibung
IMAP ist ein Netzwerkprotokoll der OSI-Schicht 7
Internet Message Access Protocol | |
---|---|
Familie | Internetprotokolle |
Einsatzgebiet | Lesen und Verwalten von E-Mails |
Ports | 143/TCP[1] 993/TCP (nur mit TLS) |
Standard | RFC 9051 |
Entwicklung
IMAP wurde in den 1980er Jahren mit dem Aufkommen von Personal Computern entworfen, um bei der Mail-Kommunikation Abhängigkeiten von einzelnen Client-Rechnern aufzulösen.[2]
- Zu diesem Zweck erweitert IMAP die Funktionen und Verfahren des Post Office Protocol (POP) so, dass Benutzer ihre Mails, Ordnerstrukturen und Einstellungen auf den (Mail-)Servern speichern und belassen können.
- Während bei der Verwendung von POP die Nachrichten entweder nach dem Abruf gelöscht oder beim nächsten Abruf erneut empfangen werden, ermöglicht IMAP eine zentrale Verwaltung mit Suchfunktion und serverseitiger „Gelesen“-Markierung.
Unterschiede zum Post Office Protokoll
Im Gegensatz zum Post Office Protocol ermöglicht IMAP eine Verwaltung von Nachrichtenordnern auf dem Server.
- Wenn eine Nachricht per IMAP als „gelesen“ markiert wurde, ist diese Markierung auch für alle anderen Clients sichtbar.
- Gelöschte Nachrichten verschwinden von allen synchronisierten Geräten.
Nachrichten können direkt auf dem Server durchsucht werden, sodass Clients keine vollständige Kopie aller Ordner vorhalten müssen, um einzelne Nachrichten zu finden.
- Die serverseitige Suchfunktion und die zentrale Speicherung aller Nachrichten verlagert Rechenarbeit und Speicherplatzverbrauch von den Clients auf den Server.
Eigenschaften
IMAP ist ein textbasiertes Protokoll zum Zugriff auf E-Mails, die sich auf einem Mailserver befinden.
- Ein Mail-Client stellt Anfragen an den Server nur nach aktuell benötigten Informationen.
- Möchte ein Nutzer z. B. den Inhalt eines Ordners sehen, holt sich der Client eine aktuelle Nachrichtenliste des betreffenden Ordners vom Server.
- Soll der Inhalt einer Mail angezeigt werden, wird dieser vom Server geladen.
Da alle Daten weiterhin auf dem Server verbleiben, zeigen – auch bei der Benutzung von mehreren Clients – alle den gleichen, aktuellen Datenbestand einer Mailbox an.
- Zudem wird eine lokale Speicherung der Daten unnötig und erweiterte Möglichkeiten wie das Durchsuchen von Mails werden serverseitig durchgeführt.
Mit IMAP ist auch der Zugriff auf verschiedene Ordner innerhalb einer Mailbox möglich.
- Viele Server können eingehende Mails auch direkt in verschiedene Ordner einsortieren (filtern).
Durch das Setzen von Zugriffsrechten für Ordner einer Mailbox können auch mehrere Benutzer gleichzeitig auf dieselben Daten zugreifen. Die Erweiterung IMAP IDLE ermöglicht eine sofortige Benachrichtigung an Clients (pushing), wenn eine neue Mail eintrifft.
- So wird unnötiger Datenverkehr vermieden, der bei ständigen Anfragen (polling) eines Clients anfallen würde.
Verfügt man über keine Internetverbindung zu seinem Mailserver, ist in der Regel auch kein Zugriff mehr auf die Mails möglich.
- Einige Clients lösen dieses Problem, indem sie lokale Kopien der Mails anlegen, auf die sie im Offline-Modus zurückgreifen können.
- Bei wiederhergestellter Internetverbindung werden die Daten wieder mit dem Mailserver abgeglichen (synchronisiert).
Wegen der zentralen Speicherung der Daten auf einem externen Server muss auch der eigene Datenschutz berücksichtigt werden.
- Die Verbindung zum Server sollte deshalb verschlüsselt werden.
Beispiel einer IMAP-Sitzung (IMAP4rev1-Beispiel aus RFC 3501, 8. Kapitel – gekürzt):
Client | Server | Erklärung |
---|---|---|
* OK IMAP4rev1 Service Ready | Server begrüßt den Client | |
a001 login mrc secret | Client meldet sich an | |
a001 OK LOGIN completed | Server bestätigt Anmeldung | |
a002 select inbox | Client wählt inbox als aktiven Ordner | |
* 18 EXISTS * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) |
18 Mails vorhanden definierte Flags
Client darf Änderungen an Mails durchführen | |
a003 fetch 12 full | Client fordert Infos zu Mail Nr. 12 | |
* 12 FETCH (FLAGS (\Seen)
a003 OK FETCH completed |
Mail wurde bereits gelesen am 17. Juli 1996 zugestellt
| |
a004 fetch 12 body[header] | Client möchte alle Header zu Mail Nr. 12 | |
* 12 FETCH (BODY[HEADER] {342}
a004 OK FETCH completed |
Server sendet geforderte Mailheader | |
a005 store 12 +flags \deleted | Mail Nr. 12 als gelöscht markieren | |
* 12 FETCH (FLAGS (\Seen \Deleted)) a005 OK +FLAGS completed | ||
a006 logout | Client meldet sich ab | |
* BYE IMAP4rev1 server terminating connection a006 OK LOGOUT completed |
Clients
IMAP wird inzwischen von fast allen gängigen E-Mail-Programmen unterstützt. Allerdings bestehen große Unterschiede im Grad der Unterstützung.
- Viele Clients unterstützen nur Basisfunktionen für den Nachrichtenabruf (was den meisten Nutzern ausreicht).
Nur wenige Programme nutzen den vollen Funktionsumfang, den IMAP-Server bieten.
- Dazu gehört zum Beispiel die Rechtevergabe zum gemeinsamen Zugriff verschiedener Benutzer auf einen Ordner.
Auswahl von Clients mit erweiterter IMAP-Unterstützung:
<templatestyles src="column-multiple/styles.css" />
- Alpine/Pine
- Gnus
- Mulberry (nahezu vollständige Unterstützung)
- Microsoft Outlook (ab Version 2007)
- Evolution
- Mozilla Thunderbird, SeaMonkey
Auswahl von Clients mit einfacher IMAP-Unterstützung:
<templatestyles src="column-multiple/styles.css" />
- Apple Mail
- Windows Mail
- Pegasus Mail
- KMail
- Microsoft Outlook
- mutt
- Opera (nur bis version 12)
- The Bat
Server
Inzwischen unterstützen viele Mailserver IMAP.
- Einige Provider unterdrücken jedoch die Funktionalität (oder verlangen ein erhöhtes Entgelt), da bei IMAP mehr Daten auf dem Server gespeichert bleiben und auch die durchschnittliche Übertragungsmenge steigt.
Cyrus war der erste Server mit einer Version von IMAP, die als Internetstandard empfohlen war.[3] UW IMAP zog im selben Jahr nach und war zuvor Proof of Concept von IMAP.
- Dieser Server von der University of Washington erweitert IMAP, was aber nicht dokumentiert und trotzdem von der Carnegie Mellon University in ihren Cyrus übernommen wurde.[4][5][6] Dieses Vorgehen der beiden Universitäten bei den ersten Implementierungen bewirkte, dass Konformität und Kompatibilität bei IMAP notorisch strittig ist.
Mit dem Courier Mail Server kam die Abkehr vom mbox-Konzept, das inzwischen als untauglich gilt.
- Courier speichert die E-Mails nach dem Maildir-Konzept.[7] Die Stabilität und Leistungsfähigkeit des Speicherkonzepts ist ein wesentliches Kriterium von Servern für IMAP.[8]
Im Unix-Umfeld kommen außer den genannten unter anderem folgende IMAP-Server zum Einsatz:
<templatestyles src="column-multiple/styles.css" />
Auch auf anderen Plattformen und auch im kommerziellen Bereich bieten Messaging-Produkte IMAP-Schnittstellen an.
<templatestyles src="column-multiple/styles.css" />
- Mercury MTS für Netware und Windows
- agorum core ist ein Open-Source-Dokumentenmanagement-System mit IMAP-Zugriff
- Alfresco ist ein Open-Source-Dokumentenmanagement-System das den IMAP-Zugriff unterstützt.
Darüber hinaus bauen Groupware-Lösungen IMAP fest in ihr Konzept ein:
<templatestyles src="column-multiple/styles.css" />
Authentifizierung
Der Server kann den Zugriff für nicht-autorisierte Benutzer auf eine Mailbox verweigern.
- In jedem Fall muss sich der Nutzer authentifizieren, bevor er Zugriff auf Mails erlangen kann.
- Das geschieht, indem er sich mit Benutzername und Passwort anmeldet.
- Das Passwort wird dabei auf IMAP-Protokoll-Ebene im Klartext übertragen.
- Mailserver können deshalb Clients verbieten, das Passwort zu übertragen, falls zuvor keine verschlüsselte Sitzung aufgebaut wurde.
Alternativ ist auch die Verwendung anderer Netzwerk-Authentifikationsprotokolle (z. B. GSSAPI, Kerberos) möglich.
Kryptografie
Um die Daten während der Übertragung vor Dritten zu schützen, kann die Datenverbindung mittels SSL/TLS verschlüsselt werden.
- Dafür existieren zwei unterschiedliche Methoden:
IMAPS
Bei der Verwendung von IMAPS wird die Verbindung zum Server bereits während des Verbindungsaufbaus durch SSL verschlüsselt.
- Damit der Server das erkennt, muss ein anderer Port verwendet werden.
- Dafür wurde der Port 993 reserviert.
Nach dem Aufbau der SSL-Verbindung wird mindestens IMAPv4 verwendet.
- Die SSL-Schicht ist für das IMAP-Protokoll transparent, d. h., es werden keine Änderungen am IMAP-Protokoll vorgenommen.
In RFC 8314 wird die Verwendung von IMAPS gegenüber STARTTLS und gänzlich unverschlüsseltem IMAP bevorzugt.
STARTTLS
Nach dem Aufbau einer unverschlüsselten Datenverbindung mit dem Server (Port 143) kann mittels des Kommandos STARTTLS eine verschlüsselte Sitzung initiiert werden, sodass alle nachfolgend versendeten Daten über diese Verbindung nur noch verschlüsselt übertragen werden.
- Diese Protokollerweiterung ist in der Protokollspezifikation fest vorgesehen
Installation
Aufruf
Parameter
Optionen
Umgebung
Rückgabewert
Konfiguration
Dateien
Anwendung
Sicherheit
Dokumentation
RFC
Die Dokumentation von IMAP setzt sich aus einer Vielzahl von grundlegenden, ergänzenden oder erweiternden RFC zusammen.
- RFC 1731 – IMAP4 Authentication Mechanisms
- RFC 1732 – IMAP4 Compatibility With IMAP2 And IMAP2BIS
- RFC 1733 – Distributed Electronic Mail Models In IMAP4
- RFC 2061 – IMAP4 Compatibility With IMAP2BIS
- RFC 2062 – Internet Message Access Protocol – Obsolete Syntax
- RFC 2087 – IMAP4 QUOTA Extension
- RFC 2088 – IMAP4 non-synchronizing literals
- RFC 2177 – IMAP4 IDLE command
- RFC 2180 – IMAP4 Multi-Accessed Mailbox Practice
- RFC 2193 – IMAP4 Mailbox Referrals
- RFC 2195 – IMAP/POP AUTHorize Extension for Simple Challenge/Response
- RFC 2221 – IMAP4 Login Referrals
- RFC 2342 – IMAP4 Namespace
- RFC 2595 – Using TLS with IMAP, POP3 and ACAP
- RFC 2683 – IMAP4 Implementation Recommendations
- RFC 2971 – IMAP4 ID Extension
- RFC 3348 – IMAP4 Child Mailbox Extension
- RFC 3501 – Internet Message Access Protocol – Version 4rev1
- RFC 3502 – IMAP MULTIAPPEND Extension
- RFC 3503 – Message Disposition Notification (MDN)profile for Internet Message Access Protocol (IMAP)
- RFC 3516 – IMAP4 Binary Content Extension
- RFC 3656 – The Mailbox Update (MUPDATE)Distributed Mailbox Database Protocol
- RFC 3691 – IMAP UNSELECT command
- RFC 4314 – IMAP4 Access Control List (ACL) Extension
- RFC 4315 – Internet Message Access Protocol (IMAP) – UIDPLUS Extension
- RFC 4466 – Collected Extensions to IMAP4 ABNF
- RFC 4467 – Internet Message Access Protocol (IMAP) – URLAUTH Extension
- RFC 4469 – Internet Message Access Protocol (IMAP) – CATENATE Extension
- RFC 4549 – Synchronization Operations for Disconnected IMAP4 Clients
- RFC 4551 – IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization
- RFC 4731 – IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned
- RFC 4959 – IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response
- RFC 4978 – The IMAP COMPRESS Extension
- RFC 5032 – WITHIN Search Extension to the IMAP Protocol
- RFC 5092 – IMAP URL Scheme
- RFC 5161 – The IMAP ENABLE Extension
- RFC 5162 – IMAP4 Extensions for Quick Mailbox Resynchronization
- RFC 5182 – IMAP Extension for Referencing the Last SEARCH Result
- RFC 5255 – Internet Message Access Protocol Internationalization
- RFC 5256 – Internet Message Access Protocol - SORT and THREAD Extensions
- RFC 5257 – Internet Message Access Protocol - ANNOTATE Extension
- RFC 5258 – Internet Message Access Protocol version 4 - LIST Command Extensions
- RFC 5464 – The IMAP METADATA Extension
- RFC 5465 – The IMAP NOTIFY Extension
- RFC 5530 – IMAP Response Codes
- RFC 5550 – The Internet Email to Support Diverse Service Environments (Lemonade) Profile
- RFC 5593 – Internet Message Access Protocol (IMAP) - URL Access Identifier Extension
- RFC 5738 – IMAP Support for UTF-8
- RFC 5788 – IMAP4 Keyword Registry
- RFC 5819 – IMAP4 Extension for Returning STATUS Information in Extended LIST
- RFC 5957 – Display-Based Address Sorting for the IMAP4 SORT Extension
- RFC 6154 – IMAP LIST Extension for Special-Use Mailboxes
- RFC 6203 – IMAP4 Extension for Fuzzy Search
- RFC 6785 – Support for Internet Message Access Protocol (IMAP) Events in Sieve
- RFC 6851 – Internet Message Access Protocol (IMAP) - MOVE Extension
- RFC 7162 – IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC)
- RFC 7377 – IMAP4 Multimailbox SEARCH Extension
Man-Page
Info-Pages
Siehe auch
Literatur
- Peer Heinlein, Peer Hartleben: POP3 und IMAP – Mailserver mit Courier und Cyrus. Open Source Press, September 2007, ISBN 978-3-937514-11-6
Links
Projekt
Weblinks
- ↑ http://www.iana.org/assignments/port-numbers
- ↑ Referenzfehler: Es ist ein ungültiger
<ref>
-Tag vorhanden: Für die Referenz namensIMAP2
wurde kein Text angegeben. - ↑ Vorlage:Cite web
- ↑ Vorlage:Cite web
- ↑ Vorlage:Cite web
- ↑ Vorlage:Cite web
- ↑ Vorlage:Cite web
- ↑ Vorlage:Cite web