Alle gängigen Desktop-Mailprogramme bauen auf Initiative des Benutzers eine Verbindung zum Server auf, um nach neuen Nachrichten zu schauen. Parallel dazu schauen viele Clients selbsttätig in Intervallen nach neuer Mail, damit der Benutzer deren Eintreffen möglichst bald registriert. Auf mobilen Clients birgt dieses Polling allerdings zwei Probleme:
Polling erweist daher als schlechte Lösung für die meisten Mobiles. Zum Glück gibt es Push-Mail. Blackberry-Geräte, der Funambol-Server und einige andere haben diese Technik populär gemacht.
Viele Server können Clients über eintreffende E-Mails benachrichtigen, sobald der Client einen beliebigen IMAP-Befehl absetzt. Dieser Ansatz ist ziemlich effizient. Allerdings empfangen die meisten Benutzer nicht genügend Nachrichten, um ihren Client für diese Technik aktiv genug zu halten. Die
»IMAP IDLE
«
-Erweiterung
[22]
vermeidet das Polling des IMAP-Servers. Clients wie Thunderbird oder Outlook implementieren genauso wie Server bereits häufig diese Erweiterung
[28]
.
Die Extension führt einen neuen IMAP-
»IDLE
«
-Befehl ein, der den Server darüber in Kenntnis setzt, dass der Client eine Information über etwaige Änderungen der aktuellen Mailbox erwartet (siehe IMAP-Ablauf in
Tabelle 1
). Kommt die Benachrichtigung, storniert der Client den
»IDLE
«
-Befehl und reagiert auf sie, indem er beispielsweise eine eingetroffene Mail abruft.
Tabelle 1
In-Band-Push-Protokoll
Sender |
Nachricht |
---|---|
Client |
10 IDLE |
Server |
+ idling |
[...] |
[...] |
Server |
* 43418 EXISTS |
Server |
* 2 RECENT |
Client |
DONE |
Server |
10 OK IDLE terminated |
Client |
13 UID fetch 919277 (FLAGS RFC822.SIZE INTERNALDATE ENVELOPE) |
Server |
* 43417 FETCH (FLAGS (\Recent) UID 919277 … |
Server |
13 OK UID FETCH Completed |
Allerdings hat die Idle einige Schwächen, die zur Entwicklung von RFC 5465 für
»IMAP NOTIFY
«
führten
[23]
. So kann
»IDLE
«
weder die vom Server zu generierenden Ereignisse steuern, noch wie der Client darüber zu benachrichtigen ist.