IMAP: Internet Message Access ProtocolIMAP (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-Mailswerden wie beim POP-Verfahren beim Provider zwischengespeichert undkönnen mit einem IMAP-Client auf den eigenen Rechner kopiert werden.IMAP bietet jedoch zusätzliche Funktionalitäten, die von POP nochnicht 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).
|