Internet -Nachrichtenzugriffsprotokoll
Im Computering die Internet -Nachrichtenzugriffsprotokoll (IMAP) ist ein Internetstandard Protokoll benutzt von E -Mail -Clients abrufen Email Nachrichten von a Mail-Server über ein TCP/IP Verbindung.[1] IMAP ist definiert durch RFC 9051.
IMAP wurde mit dem Ziel entwickelt, eine vollständige Verwaltung von einem zu ermöglichen Postfach Durch mehrere E -Mail -Clients hinterlassen Clients im Allgemeinen Nachrichten auf dem Server, bis der Benutzer sie explizit löscht. Ein IMAP -Server hört normalerweise auf Port-Nummer 143. IMAP OVER SSL/TLS (IMAPS) wird die Portnummer 993 zugewiesen.[2][3]
Praktisch alle modernen E-Mail-Kunden und Server Unterstützen Sie IMAP, das zusammen mit früher Pop3 (Post -Office -Protokoll) sind die beiden häufigsten Standardprotokolle für das Abrufen von E -Mails.[4] Viele Webmail Dienstleister wie z. Google Mail und Outlook.com Bieten Sie auch Unterstützung für IMAP und POP3.
E -Mail -Protokolle
Das Internet -Nachrichtenzugriffsprotokoll ist ein Anwendungsschicht Internetprotokoll, das eine erlaubt E-Mail-Client zugreifen Email Auf einer Fernbedienung Mail-Server. Die aktuelle Version wird durch definiert von RFC 9051. Ein IMAP -Server hört normalerweise auf Bekannter Port 143, während IMAP über SSL/TLS (IMAPs) 993 verwendet.[2][3]
Eingehende E -Mail -Nachrichten werden an einen E -Mail -Server gesendet, der Nachrichten im E -Mail -Feld des Empfängers speichert. Der Benutzer ruft die Nachrichten mit einem E -Mail -Client ab, der eine Reihe von E -Mail -Abrufprotokollen verwendet. Während einige Clients und Server bevorzugt herstellerspezifisch verwenden, Proprietäre Protokolle,[5] Fast alle unterstützen Pop und IMAP für das Abrufen von E -Mails - und ermöglichen viele freie Wahl zwischen vielen E-Mail-Kunden wie zum Beispiel Pegasus Mail oder Mozilla Thunderbird Zu greifen auf diese Server zuzugreifen und die Clients zu verwenden, mit denen sie verwendet werden können Andere Server.
E -Mail -Clients, die IMAP verwenden, lassen Nachrichten im Server im Allgemeinen, bis der Benutzer sie explizit löscht. Mit dieser und anderen Merkmalen des IMAP -Betriebs können mehrere Clients dieselbe Mailbox verwalten. Die meisten E -Mail -Clients unterstützen IMAP zusätzlich zu Postprotokoll (Pop) Nachrichten abrufen.[6] IMAP bietet Zugriff auf den Mailspeicher. Clients können lokale Kopien der Nachrichten speichern, diese gelten jedoch als temporärer Cache.
Geschichte
IMAP wurde von entworfen von Mark Crispin 1986 als Remote -Access -Mailbox -Protokoll im Gegensatz zum weit verbreiteten POP ein Protokoll zum einfachen Abrufen des Inhalts einer Mailbox.
Es wurde vor der aktuellen Version 4Rev1 (IMAP4) eine Reihe von Iterationen durchlief, wie unten beschrieben:
Original IMAP
Das Original Interim Mail -Zugriffsprotokoll wurde als implementiert Xerox Lisp -Maschine Kunde und a Tops-20 Server.
Es gibt keine Kopien der ursprünglichen Interim -Protokoll -Spezifikation oder ihrer Software.[7][8] Obwohl einige seiner Befehle und Antworten IMAP2 ähnlich waren, fehlte dem Zwischenprotokoll das Befehls-/Antwort -Markierungen und somit war seine Syntax mit allen anderen Versionen von IMAP nicht kompatibel.
IMAP2
Das Zwischenprotokoll wurde schnell durch die ersetzt Interaktives Mail -Zugriffsprotokoll (IMAP2), definiert in RFC 1064 (1988) und später aktualisiert von RFC 1176 (in 1990). IMAP2 stellte das Befehls-/Antwort -Tagging vor und war die erste öffentlich verteilte Version.
IMAP3
IMAP3 ist eine äußerst seltene Variante von IMAP.[9] Es wurde veröffentlicht als RFC 1203 im Jahr 1991. Es wurde speziell als Gegenvorschlag geschrieben RFC 1176, was selbst Modifikationen zu IMAP2 vorgeschlagen haben.[10] IMAP3 wurde vom Markt nie akzeptiert.[11][12] Das IESG Reklassifiziert RFC1203 "Interactive Mail Access Protocol - Version 3" als historisches Protokoll im Jahr 1993. Die IMAP -Arbeitsgruppe verwendete RFC 1176 (IMAP2) anstelle von RFC 1203 (IMAP3) als Ausgangspunkt.[13][14]
IMAP2BIS
Mit dem Aufkommen von MIME, IMAP2 wurde erweitert, um MIME -Körperstrukturen zu unterstützen und die Funktionen des Mailbox -Managements (Erstellen, Löschen, Umbenennen, Nachrichten -Uploads) hinzuzufügen, die in IMAP2 fehlen. Diese experimentelle Überarbeitung wurde iMAP2BIS genannt; Seine Spezifikation wurde nie in Nichtentladungsform veröffentlicht. Ein Internetentwurf von IMAP2BIS wurde im Oktober 1993 von der IETF -IMAP -Arbeitsgruppe veröffentlicht. Dieser Entwurf basierte auf den folgenden früheren Spezifikationen: unveröffentlicht IMAP2BIS.TXT dokumentieren, RFC 1176, und RFC 1064 (IMAP2).[15] Das IMAP2BIS.TXT Der Entwurf dokumentierte den Zustand der Erweiterungen gegen IMAP2 ab Dezember 1992.[16] Frühe Versionen von Kiefer wurden mit IMAP2BIS -Unterstützung weit verbreitet[9] (Pine 4.00 und später IMAP4REV1).
IMAP4
Eine IMAP -Arbeitsgruppe, die in der gebildet wurde Ietf In den frühen neunziger Jahren übernahm die Verantwortung für das IMAP2BIS -Design. Die IMAP WG beschloss, IMAP2BIS in IMAP4 umzubenennen, um Verwirrung zu vermeiden.
Vorteile gegenüber Pop
Verbundene und getrennte Modi
Bei der Verwendung von POP stellen Clients normalerweise kurz eine Verbindung zum E-Mail-Server her, nur solange das Herunterladen neuer Nachrichten erforderlich ist. Bei der Verwendung von IMAP4 bleiben Clients häufig in Verbindung, solange die Benutzeroberfläche aktiv ist und Nachrichteninhalte bei Bedarf herunterladen. Für Benutzer mit vielen oder großen Nachrichten kann dieses IMAP4 -Verwendungsmuster zu schnelleren Reaktionszeiten führen.
Mehrere gleichzeitige Kunden
Das POP -Protokoll erfordert, dass der derzeit verbundene Client der einzige Client ist, der mit der Mailbox verbunden ist. Im Gegensatz dazu ermöglicht das IMAP -Protokoll ausdrücklich den gleichzeitigen Zugriff durch mehrere Clients und bietet Mechanismen den Clients, um Änderungen an der Mailbox durch andere, gleichzeitig verbundene Clients vorzunehmen. Siehe zum Beispiel RFC 3501 Abschnitt 5.2, in dem speziell "gleichzeitiger Zugriff auf dieselbe Mailbox durch mehrere Agenten" zitiert wird.
Zugriff auf MIME -Meldungsteile und teilweise Abruf
Normalerweise wird alle Internet-E-Mails übertragen MIME Format, damit Nachrichten eine haben können Baumstruktur Wenn die Blattknoten eine Vielzahl von Einzelteilinhaltstypen und die Nicht-Blattknoten eine Vielzahl von mehrteiligen Typen sind. Das IMAP4 -Protokoll ermöglicht Clients, alle einzelnen Mime -Teile getrennt abzurufen und Teile entweder einzelner Teile oder der gesamten Nachricht abzurufen. Mit diesen Mechanismen können Clients den Textbereich einer Nachricht abrufen, ohne angehängte Dateien abzurufen oder zu Strom Inhalt wie er abgerufen wird.
Informationen zu Nachrichtenstatus
Durch die Verwendung von Flags, die im IMAP4 -Protokoll definiert sind, können Clients den Nachrichtenzustand verfolgen: Zum Beispiel, ob die Nachricht gelesen, beantwortet oder gelöscht wurde oder nicht. Diese Flags werden auf dem Server gespeichert, sodass verschiedene Clients zu unterschiedlichen Zeitpunkten auf dieselbe Mailbox zugreifen können, können Statusänderungen von anderen Clients erkennen. POP bietet keinen Mechanismus für Clients, um solche Statusinformationen auf dem Server zu speichern Kunden. Das IMAP4-Protokoll unterstützt sowohl vordefinierte Systemflags als auch clientdefinierte Schlüsselwörter. Systemflags geben staatliche Informationen an, z. B. ob eine Nachricht gelesen wurde. Schlüsselwörter, die nicht von allen IMAP -Servern unterstützt werden, ermöglichen Nachrichten einen oder mehrere Stichworte deren Bedeutung beim Kunden liegt. IMAP -Schlüsselwörter sollten nicht mit proprietären Beschriftungen von verwechselt werden Webbasierte E-Mail Dienste, die manchmal von den entsprechenden proprietären Servern in IMAP -Ordner übersetzt werden.
Mehrere Mailboxen auf dem Server
IMAP4 -Clients können Postfächer (normalerweise dem Benutzer als Ordner angegeben) auf dem Server erstellen, umbenennen und löschen und Nachrichten zwischen Mailboxen kopieren. Mit mehreren Mailbox -Support können Server auch Zugriff auf freigegebene und öffentliche Ordner gewähren. Das IMAP4 Access Control List (ACL) Erweiterung (RFC 4314) kann verwendet werden, um Zugriffsrechte zu regulieren.
Serverseitige Suche
IMAP4 bietet einem Client einen Mechanismus, um den Server aufzufordern, nach Nachrichten zu suchen, die eine Vielzahl von Kriterien erfüllen. Dieser Mechanismus vermeidet es, dass Clients jede Nachricht in der Mailbox herunterladen, um diese Suchvorgänge auszuführen.
Eingebauter Erweiterungsmechanismus
IMAP4 spiegelt die Erfahrung früherer Internetprotokolle wider und definiert einen expliziten Mechanismus, durch den er erweitert werden kann. Viele IMAP4 Erweiterungen zum Basisprotokoll wurden vorgeschlagen und werden gemeinsam verwendet. IMAP2BIS hatte keinen Verlängerungsmechanismus, und Pop hat jetzt einen definiert von RFC 2449.
Server -Push -Benachrichtigungen
IMAP Idle im Leerlauf Bietet dem Mailserver eine Möglichkeit, vernetzte Clients darüber zu informieren, dass es Änderungen an einer Mailbox gab, beispielsweise, weil eine neue E -Mail eingetroffen ist. POP bietet keine vergleichbare Funktion, und E -Mail -Clients müssen regelmäßig eine Verbindung zum POP -Server herstellen, um nach neuen E -Mails zu suchen.
Nachteile
Während IMAP viele der Mängel von POP hemmt, führt dies von Natur aus zusätzliche Komplexität. Ein Groß Server-Seite Problemumgehungen wie Maildir oder Datenbank -Backends.
Die IMAP -Spezifikation wurde dafür kritisiert, dass sie unzureichend streng und Verhaltensweisen ermöglicht, die ihre Nützlichkeit effektiv negieren. In der Spezifikation heißt es beispielsweise, dass jede auf dem Server gespeicherte Nachricht über eine "eindeutige ID" verfügt, mit der die Clients Nachrichten identifizieren können, die sie bereits zwischen den Sitzungen gesehen haben. Die Spezifikation ermöglicht es jedoch auch, dass diese UIDs ohne Einschränkungen ungültig werden und praktisch ihren Zweck besiegen.[17]
Sofern die E -Mail -Speicher- und Suchalgorithmen auf dem Server sorgfältig implementiert sind, kann ein Client bei der Suche nach massiven Postfächern möglicherweise große Mengen an Serverressourcen konsumieren.
IMAP4 -Clients müssen eine TCP/IP -Verbindung zum IMAP -Server verwalten, um über die Ankunft neuer Mails informiert zu werden. Die Benachrichtigung über die E -Mail -Ankunft erfolgt durch In-Band-Signalübertragung, was zur Komplexität des kundenseitigen IMAP-Protokollhandlings etwas beiträgt.[18] Ein privater Vorschlag, IMAP drücken, würde IMAP auf die Implementierung ausdehnen E-Mail schießen Durch das Senden der gesamten Nachricht anstelle einer Benachrichtigung. Push IMAP wurde jedoch nicht allgemein akzeptiert, und die aktuelle IETF -Arbeit hat das Problem auf andere Weise angesprochen (siehe die Limonadenprofil für mehr Informationen).
Im Gegensatz zu einigen proprietären Protokollen, die das Senden und Abrufen von Vorgängen kombinieren, eine Nachricht senden und eine Kopie in einem serverseitigen Ordner mit einem IMAP-Client auf Basisebene speichern müssen Speichern Sie in einem gesendeten Mail -Ordner. Dies wird durch eine Reihe von Erweiterungen behandelt, die vom IETF definiert werden Limonadenprofil Für mobile Geräte: urlauth (RFC 4467) und Catenat (RFC 4469) in IMAP und Burl (RFC 4468) in SMTP-Submission. Außerdem, Courier Mail Server Bietet eine nicht standardmäßige Methode zum Senden mit IMAP, indem Sie eine ausgehende Nachricht in einen dedizierten Operatorordner kopieren.[19]
Sicherheit
Um IMAP -Verbindungen zwischen Client und Server kryptografisch zu schützen, können IMAPs auf dem TCP -Port 993 verwendet werden, der SSL/TLS verwendet.[2][3] Ab Januar 2018 ist TLS der empfohlene Mechanismus.[20]
Alternative, Starttls kann verwendet werden, um die Verbindung zu verschlüsseln, wenn sie nach zunächst kommunizierter Übermittlung an Port 143 hergestellt werden Klartext.
Dialogbeispiel
Dies ist eine Beispiel -IMAP -Verbindung, wie er genommen wurde RFC 3501 Abschnitt 8:
C: <Open Connection> S: * OK IMAP4REV1 -Service bereitC: A001 Login MRC Secret S: A001 OK Login abgeschlossenC: A002 Posteingang auswählen S: * 18 existiert S: * Flags (\ beantwortet \ markiert \ gelöscht \ gesehen \ Entwurf) S: * 2 Neue S: * OK [unsichtbar 17] Nachricht 17 ist die erste unsichtbare Nachricht S: * OK [UIDVALIDITY 3857529045] UIDs Gültig S: A002 OK [Read-Write] Wählen Sie fertiggestelltC: A003 12 voll abholen S: * 12 Fetch (Flags (\ gesehen) Internaldate "17 -Jul -1996 02:44:25 -0700" RFC822.Size 4286 Umschlag ("Mi, 17. Juli 1996 02:23:25 -0700 (PDT)" "" IMAP4REV1 WG MTG Zusammenfassung und Minuten "((" Terry Gray "Nil" Gray "" Cac.Washington.edu ")) ((" Terry Gray "nil" Gray "" Cac.washington.edu ")) (" Terry Gray " "Nil" grau "" Cac.Washington.edu ")) ((nil nil" IMAP "" Cac.washington.edu ")) ((nil nil" Minuten "cnri.reston.va.us") ("John John") ("John John") Klensin "nil" Klensin "" Mit.edu ")) nil nil" <[email protected]> ") Körper (" Text "" Ebene "(" Charset "" US-Ascii ") nil nil" 7bit "3028 92)) S: A003 OK Fetch fertiggestelltC: A004 Fetch 12 Body [Header] S: * 12 Fetch (Body [Header] {342} S: Datum: Mi, 17. Juli 1996 02:23:25 -0700 (PDT) S: Von: Terry Gray <[email protected]> S: Betreff : IMAP4REV1 WG MTG Zusammenfassung und Minuten S: TO: [email protected] S: CC: [email protected], John Klensin <[email protected]> s: Nachricht-ID: <B27397- [email protected]> S: Mime-Version: 1.0 S: Content-Type: Text/Plain; charset = us -cii s: S:) S: A004 OK Fetch fertiggestelltC A005 Speicher 12 +Flags \ gelöscht S: * 12 Fetch (Flags (\ gesehen \ gelöscht)) S: A005 OK +Flags abgeschlossenC: A006 Logout S: * BYE IMAP4REV1 -Server Beendigung der Verbindung S: A006 OK Logout Fertig
Siehe auch
- Liste der Mail -Server -Software
- Vergleich von E -Mail -Kunden
- Vergleich von Mail -Servern
- IMAP Idle im Leerlauf
- JSON Meta Application Protocol (JMAP)
- Postprotokoll (POP)
- Push-Imap
- Einfacher Mail -Zugriffsprotokoll
- Simple Mail Transfer Protocol
- Webmail
Verweise
- ^ Dean, Tamara (2010). Netzwerk+ Handbuch zu Netzwerken. Delmar. p. 519. ISBN 978-1-42390245-4.
- ^ a b c Blum, Richard (15. Dezember 2002). Open Source-E-Mail-Sicherheit. Sams Publishing. ISBN 9780672322372 - über Google Books.
- ^ a b c Garfinkel, Simson; Spafford, Gen; Schwartz, Alan (15. Dezember 2003). Praktische Unix- und Internetsicherheit. "O'Reilly Media, Inc.". ISBN 9780596003234 - über Google Books.
- ^ Komarinski, Mark (2000). Red Hat Linux System Administration Handbuch. Prentice Hall. p. 179.
- ^ Zum Beispiel, Microsoft's Ausblick Client verwendet Mapi, a Microsoft proprietäres Protokoll, um mit a zu kommunizieren Microsoft Exchange Server. IBM's Anmerkungen Der Kunde arbeitet in ähnlicher Weise bei der Kommunikation mit a Domino Server.
- ^ Mullet, Diana (2000). IMAP verwalten. O'Reilly. p. 25. ISBN 0-596-00012-x.
- ^ Crispin, Mark (13. Februar 2012). "Re: [IMAP5] Entwerfen eines neuen Ersatzprotokolls für IMAP". IMAP5 (Mailingliste). [email protected]. Abgerufen 26. November 2014.
Das Wissen über das ursprüngliche IMAP (vor IMAP2) besteht in meinem Kopf hauptsächlich in meinem Kopf, da alle ursprünglichen IMAP -Spezifikationen und Implementierungen durch IMAP2 ersetzt wurden.
- ^ Dienstname und Transportprotokoll -Portnummer Registrierung. Iana.org (2013-07-12). Abgerufen am 2013-07-17.
- ^ a b "RFC 2061 - IMAP4 -Kompatibilität mit IMAP2BIS". Ietf. 1996. Abgerufen 2010-08-21.
- ^ "Interactive Mail Access Protocol - Version 3". Ietf. 1991. Abgerufen 2010-08-21.
- ^ "IMAP2, IMAP2BIS, IMAP3, IMAP4, IMAP4REV1 (LAN -Mail -Protokolle)". Abgerufen 2010-08-21.
- ^ "IMAP -Übersicht, Geschichte, Versionen und Standards". Abgerufen 2010-08-21.
- ^ "Protokollaktion: Interactive Mail Access Protocol - Version 3 zu historischem (IETF -Mail -Archiv)". 1993. Abgerufen 2010-08-21.
- ^ "Innosoft und Pop/IMAP -Protokolle? (Mail -Archiv)". 1993. Abgerufen 2010-08-21.
- ^ "Interactive Mail Access Protocol - Version 2BIS (Internet Draft)". Ietf. 1993. Abgerufen 2010-08-21.
- ^ "IMAP2BIS - Erweiterungen zum IMAP2 -Protokoll (Entwurf)". 1992. archiviert von das Original Am 2011-07-18. Abgerufen 2010-08-21.
- ^ "IMAP-Implementierung in SUP, einem E-Mail-Client, der in Ruby geschrieben wurde". Rubyforge.com. Archiviert von das Original Am 2007-12-12. Abgerufen 2011-02-22.
- ^ "IMAP Idle: Der beste Ansatz für 'Push' E-Mail". Isode.com. Abgerufen 2009-07-30.
- ^ "Courier-Imap: Mail über eine IMAP-Verbindung senden". Doppelpräzision, Inc.. Abgerufen 2013-09-24.
- ^ RFC 8314. doi:10.17487/rfc8314.
Weitere Lektüre
- Crispin, Mark (1988–2016). "Zehn Gebote, wie man einen IMAP -Client schreibt". Universität von Washington. Archiviert von das Original am 2016-08-29. Abgerufen 2018-11-02.
- Heinlein, p; Hartleben, P (2008). Das Buch IMAP: Erstellen eines Mailservers mit Kurier und Cyrus. Keine Stärkepresse. ISBN 978-1-59327-177-0.
- Hughes, L (1998). Internet-E-Mail-Protokolle, Standards und Implementierung. Artech House Publishers. ISBN 0-89006-939-5.
- Johnson, K (2000). Internet-E-Mail-Protokolle: Ein Entwicklerhandbuch. Addison-Wesley Professional. ISBN 0-201-43288-9.
- Loshin, P (1999). "Essentielle E-Mail-Standards: RFCs und Protokolle praktisch". Programmieren von Internet Mail. O'Reilly. ISBN 1-56592-479-7.