TUX

IMAP über Telnet

TUX

IMAP über telnet

Im folgenden werden einzugebende Kommandos und Daten fett gedruckt, die Antworten vom Server erscheinen in dieser Schrift.

telnet Adresse_des_Mailservers 143
baut eine Verbindung zum Mailserver auf. Darauf sollte der Server etwa wie folgt reagieren.
Connected to Name_des_Mailservers
Escape chracter is '^]'
* OK Server_Software server ready


Dann kann man sich mit
a001 LOGIN username password
a001 OK User logged in
authentifizieren.

Dabei ist das a001 ein sogenannte Token, das beim IMAP-Protokoll vor jedem Komando mitgesendet werden muss. Der Hintergrund ist, das bei IMAP (theoretisch) mehrer Kommandos asynchron nebeneinander abgearbeitet werden können.
In diesem Fall dient das Token dazu die Antworten den Kommandos zuordnen zu können. In diesem Howto verwende ich a + fortlaufende Nummer als Token jeder andere kurze String sollte ebenfalls funktionieren.

Mit a002 SELECT INBOX wählt man die Mailbox der angemeldeten User aus. Der Server antwortet mit
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1081606290]
* OK [UIDNEXT 10]
a002 OK [READ-WRITE] Completed

Es sind also keinen E-Mail in diesem Ordner vorhanden.

Ein a003 EXAMINE INBOX liefert die fast identische Antwort
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS ()]
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1081606290]
* OK [UIDNEXT 12]
a003 OK [READ-ONLY] Completed


Ein a004 LIST "" * zählt alle Unterordner auf.
* LIST () "." "INBOX"
* LIST () "." "INBOX.normal"
* LIST () "." "INBOX.spam"
* LIST () "." "INBOX.wichtig"
a004 OK Completed (0.010 secs 5 calls)


Ein a005 SELECT INBOX.normal wechselt in den angegeben Ordner.
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
* 9 EXISTS
* 1 RECENT
* OK [UNSEEN 1]
* OK [UIDVALIDITY 1081607793]
* OK [UIDNEXT 322]
a005 OK [READ-WRITE] Completed

In diesem Unterordner sind also 9 E-Mails enthalten, 1 davon ist neu und noch ungelesen.

Auch hier erkennt man eine Besonderheit im Umgang mit IMAP-Servern. Üblicherweise werden bei einem IMAP-Zugang die E-Mails nicht zum Client heruntergeladen und dort gespeichert, sondern verbeleiben auf dem Server, auch nachdem sie gelesen sind. Der Client hällt (meist) nur einen Cache mit dem dem Mail-Header (den MEta-Informationen in der E-Mail) vor. Der Vorteil ist, das man auch wenn man von einen anderen Client-Rechner auf sein Postfach zugreift, alle E-Mail zur Verfügung hat.

Ein a006 FETCH 9 BODY[] gibt die 9. E-Mail aus.
* 5 FETCH (BODY[] {Größe}
Mailheader inclusive
Recieved: from...
by ....
Date: Absendedatum
Message-Id: msgid
From: Absender
To: Empfänger
Subject: Betreff

Mailtext...
a006 OK Completed


Wenn man alle E-Mail gelesen hat, meldet man sich mit a007 LOGOUT ab. Der Server verabschiedet sich mit
* BYE LOGOUT received
a007 OK Completed

und telnet meldet
Connection closed by foreign host.

Außerdem ist das a008 NOOP Kommando recht nütlich. Das Kommando wird vom Server mit einem a008 OK Completed quitiert, auf das evtl. neue Status-Meldungen folgen, falls etwa in der Zwischenzeit neue E-Mail angekommen sind. Außerdem wird der idle-Timeout zurückgestetzt, d.h. man kann mit regelmäsigen NOOP-Kommandos verhindern, das die Verbindung wegen Inaktivität getrennt wird.



Zum Seitenanfang
Zur Zwischenübersicht
Zur Startseite