Sie sind hier:  AIB V3 > Netzwerke > Höhere Protokolle > IMAP  
IMAP: Internet Message Access Protocol

IMAP (genauer: IMAP, Version 4) löst das POP-Verfahren zunehmend ab und wird zum neuen Standard. Der Unterschied liegt unter anderem in der Funktionalität des IMAP-Verfahrens. Das Prinzip ist dem POP-Verfahren jedoch sehr ähnlich. Die E-Mails werden wie beim POP-Verfahren beim Provider zwischengespeichert und können mit einem IMAP-Client auf den eigenen Rechner kopiert werden. IMAP bietet jedoch zusätzliche Funktionalitäten, die von POP noch nicht angeboten werden, z. B. kann der Mail-Body getrennt geladen werden, und auch die Attachments lassen sich getrennt abrufen.
E-Mail-Client und Server tauschen bei IMAP ihre Daten über den TCP-Port 143 aus. Im Gegensatz zu den Protokollen SMTP und POP muß der Client bei IMAP nicht nach jedem gesendeten Kommando auf die unmittelbare Antwort des Servers warten. Es können mehrere Befehle hintereinander versendet werden, die jeweilige Rückmeldung vom Server kann später erfolgen. Dazu wird jedem Kommando seitens des Client eine Kennung vorangestellt, auch "Tag" genannt, zum Beispiel "X001" für den ersten Befehl und "X002" für den zweiten. Der Server kann dem Client auf mehrere Arten antworten: Mit einem Plus-Zeichen am Anfang der Zeile antwortet der Server, wenn er weitere Informationen zu dem vorangegangenen Kommando erwartet. Er signalisiert dem Client gleichzeitig seine Empfangsbereitschaft. Steht dagegen ein Sternchen am Anfang der Zeile, sendet der Server weitere Informationen an den Client zurück.

Die Antwort eines Servers kennzeichnet den Erfolg oder Fehler eines Kommandos:

  • OK (Kommando erfolgreich ausgeführt),
  • NO (Fehler beim Ausführen) oder
  • BAD (Protokoll-Fehler: Kommando unbekannt oder Syntax-Fehler).
Die Antwort enthält denselben Tag wie das zugehörige Kommando, damit der Client erkennt, welcher Response welchem Befehl gilt. Wie bei POP durchläuft eine IMAP-Verbindung mehrere Sitzungsstufen:
  • Non-Authenticated State: Unmittelbar nach dem Aufbau der Verbindung. Der User muß sich gegenüber dem Server identifizieren.
  • Authenticated State: Der User hat sich erfolgreich identifiziert und muß nun eine Mailbox auswählen.
  • Selected State: Eine Mailbox wurde ausgewählt. Mailbox und Mails lassen sich bearbeiten.
  • Logout State: Die Verbindung wird beendet; der Server führt noch anstehende Tätigkeiten aus.

Der "Non-Authenticated State" stellt mehrere Möglichkeiten zur Identifizierung des Anwenders zur Verfügung. Es gibt in diesem Zusatand folgende Kommandos:

Kommandos im "Non-Authenticated State"
Kommando Argument Beschreibung
AUTHENTICATE Authentifizierungs-Mechanismus Das Kommando bestimmt den Authentifizierungs-Mechanismus, zum Beispiel "Kerberos" oder "S/Key". Details zu den Authentifizierungs-Mechanismen finden Sie in RFC1731.
LOGIN Name/Passwort Identifiziert den Anwender über Benutzername und Passwort.

Beispiel für eine Authentifizierung mit dem LOGIN-Kommando:

Client: X001 LOGIN PLATE XYZ1230
Server: X001 OK LOGIN completed

Im "Authenticated State" hat sich der User authentifiziert und muß nun eine Mailbox auswählen, welche in dieser Sitzung bearbeitet werden soll. Dazu stehen unter anderem folgende Kommandos zur Verfügung:

Wichtige Kommandos im "Authenticated State"
Kommando Argument Beschreibung
SELECT Mailbox-Name Wählt eine Mailbox zur weiteren Bearbeitung aus. Als erfolgreiche Antwort sendet der Client Informationen zur gewählten Mailbox, wie beispielweise die Anzahl der gespeicherten Nachrichten.
EXAMINE Mailbox-Name Identisch mit dem Kommando SELECT. Jedoch wird die Mailbox als "read-only" ausgewählt, es sind keine dauerhaften Änderungen möglich.
CREATE Mailbox-Name Erstellt eine Mailbox mit dem als Argument übergebenen Namen.
DELETE Mailbox-Name Löscht die als Argument übergebene Mailbox.
RENAME Bestehender Mailbox-Name / Neuer Mailbox-Name Ändert den Namen einer Mailbox.

Beispiel: Löschen einer Mailbox:

Client: X324 DELETE TRALALA
Server: X234 OK DELETE completed

Im "Selected State" gibt es viele Kommandos zum Bearbeiten einer Mailbox:

Wichtige Kommandos im "Selected State"
Kommando Argument Beschreibung
CLOSE - Entfernt alle zum Löschen gekennzeichneten Mails und setzt die Verbindung in den Authenticated State zurück.
EXPUNGE - Entfernt alle zum Löschen gekennzeichneten Mails, die Verbindung bleibt im Selected State.
SEARCH ein oder mehrere Suchkriterien Erlaubt die Suche nach bestimmten Nachrichten in der aktuellen Mailbox. Das Kommando unterstützt logische Verknüpfungen.
FETCH Gewünschte Daten einer Nachricht Bewirkt das Senden von Daten einer Nachricht vom Server zum Client.

Beispiel: Suchen einer Nachricht. Ergebnis sind die Nummern der entsprechenden Mails:

Client: X246 SEARCH SINCE 1-NOV-2001 FROM "ADAM"
Server: * SEARCH 2 84 882
Server: X246 OK SEARCH completed

Beendet der Client mit dem Kommando LOGOUT die Verbindung, wechselt der Server in den "Update State" und führt noch anstehende Arbeiten aus.
Es gibt eine Reihe weiterer Befehle im "Authenticated State" und "Selected State", die in RFC2060 nachzulesen sind.

Im abschließenden Beispiel sehen Sie den Ablauf einer IMAP4-Verbindung. Der Client identifiziert sich gegenüber dem Server, wählt eine Mailbox aus und lädt den Header einer Nachricht herunter.

Server: * OK IMAP4 Service Ready
Client: X001 login plate XYZ1230
Server: X001 OK LOGIN completed
Client: X002 select inbox
Server: * 12 EXISTS
Server: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
Server: * 2 RECENT
Server: * OK [UNSEEN 11] Message 11 is first new message
Server: * OK [UIDVALIDITY 2905753845] is first new message
Server: X002 OK [READ-WRITE] SELECT completed
Client: X003 fetch 9 rfc822.header
Server: * 9 FETCH (RFC822.HEADER {346}
Server: Date: mon, 11 Mar 2002 09:23:25 -0100 (MET)
Server: From: plate <plate@netzmafia.de>
Server: Subject: Schulung Netzwerke am Donnerstag
Server: To:  <schulung@ee.fhm.edu>
Server: Message-Id: <20020311104452.GH1474.plate@netzmafia.de>
Server: Mime-Version: 1.0
Server: Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1
Server: )
Server: X003 OK FETCH completed
Client: X004 LOGOUT
Server: * BYE IMAP4 server terminating connection
Server: X004 OK LOGOUT completed

Nachdem der Mail-Client über TCP eine Verbindung zum SMTP-Server aufgebaut hat, wartet er auf einen Begrüßungstext des Servers. Im nächsten Schritt identifiziert sich der Client mit dem Kommando LOGIN, als Argument übergibt er den Benutzernamen und das Passwort. Nach dem Auswählen der Mailbox sendet der Server einige Informationen, z. B. die Anzahl der ungelesenen Nachrichten. Mit dem Kommando FETCH fordert der Client den Header der Nachricht 9 an. LOGOUT beendet die Verbindung.

Bei Inbetriebnahme eines POP- bzw. IMAP-Clients (Outlook, Pegasus Mail, Netscape) muß dieser zunächst konfiguriert werden. Wichtige Angaben sind:

  • Domainname des POP- bzw. IMAP-Servers, d.h. Systems, auf dem die eigentliche Mailbox liegt.
  • Benutzernummer auf diesem System
  • Paßwort für diese Benutzernummer
  • für den Versand: Angabe des SMTP-Mail-Relayhosts

POP/IMAP dient nur zum Abholen der Post vom Mail-Server. Der Versand von E-Mail vom PC oder Mac aus geschieht ganz normal mit SMTP (Simple Mail Transfer Protocol).

Spam-Server "Grum" abgeschaltet

Für alle die sich schon immer über zuviel Spam im Postfach geärgert haben gibt es eine gute...

TYPO3 Version 4.7 verfügbar

Die finalen Version des TYPO3 CMS Version 4.7 ist veröffentlicht worden. In TYPO3 4.7 wurde...

Schleusingen jetzt mit UTMS versorgt

In Schleusingen ab sofort mit bis zu 42,2 Megabit pro Sekunde im Internet surfen....

neuer RC TYPO3 4.7 veröffentlicht

Der neue Release-Kandidat 2 von TYPO3 4.7 wartet mit einer Vielzahl neuer Funktionen auf, außerdem...

TYPO3 4.4.12, 4.5.8 und 4.6.1 sind online

Heute wurde bekannt gegeben, dass ab sofort TYPO3 4.4.12, 4.5.8 und 4.6.1 zur Verfügung stehen. Es...

Das Hennebergische Gymnasium Schleusingen hat eine neue Website !

Nach langen Wochen der Erstellung und Redaktionsschulung ist die neue Website www.gym-schleusingen...