2012-03-27 3 views
0

Ich arbeite an einer Mail-Client-Anwendung erhalten, die E-Mails für ein Google Mail-Konto synchronisiert die IMAP-c-Client-Bibliothek.Wie ungesehen/ungelesene E-Mails in der Mailbox andere als Mail-Suchtechnik

Wie kann ich die neuesten ungesehenen/ungelesenen E-Mails im Postfach abrufen, ohne blind nach alle ungelesenen E-Mails zu suchen?

Eine Mail-Suche muss alle ungelesenen E-Mails auf jeder Synchronisierung mit dem Client ziehen, aber es ist ziemlich eine teure Operation, um bei jeder Synchronisierung durchzuführen. Gibt es eine bessere aproach an den Client ungelesene E-Mails zu kommunizieren, die auf der vorherige Interaktion mit dem Server nicht synchronisierten wurden?

Thunderbird, zum Beispiel, in der Lage ist, ungesehen von E-Mails mit einem Mechanismus zu synchronisieren (möglicherweise durch eine blinde Suche für alle unsichtbaren E-Mails zu tun) als IDLE Befehl den Client nicht über sie informieren.

Gibt es einen Mechanismus, der den Client über ungelesene E-Mails sagen kann, die seit der letzten Synchronisierung erschienen sind?

Antwort

0

Es gibt eine IMAP-Erweiterung für Schnelle Flag-Änderungen Resynchronisation (RFC-4551). Mit dieser Erweiterung ist es möglich, nach allen Nachrichten zu suchen, die seit der letzten Synchronisation geändert wurden (basierend auf einer Art von Zeitstempel). Allerdings ist diese Erweiterung nicht weit unterstützt - insbesondere nicht durch die gmail IMAP-Server:

* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE 

Es ist eine Informations RFC, die beschreibt, wie IMAP-Clients Synchronisation tun sollen (RFC-4549, Abschnitt 4.3). Der Text empfiehlt die Ausgabe der folgenden zwei Befehle:

tag1 UID FETCH <lastseenuid+1>:* <descriptors> 
tag2 UID FETCH 1:<lastseenuid> FLAGS 

Der erste Befehl die erforderlichen Informationen für alle unbekannten Mails zu holen verwendet wird (ohne zu wissen, wie viele E-Mails gibt es). Der zweite Befehl wird verwendet, um die Flags für die bereits gesehenen Mails zu synchronisieren.

Diese Methode ist weit verbreitet. Daher enthalten viele IMAP-Server eine Optimierung, um diese Informationen schnell zur Verfügung zu stellen. In der Regel ist die Netzwerkbandbreite der limitierende Faktor.

Wenn Sie daran interessiert sind nur in der UNSEEN Flagge sind, eine UID SEARCH ist wahrscheinlich das Beste, was Sie tun können.

+0

Vielen Dank für Vorschlag –