2010-11-10 7 views
2

est-il moyen (avec IMAP) pour récupérer seulement messages mis à jour pendant un certain temps? (ou, peut-être, seulement leurs drapeaux).
ce que je veux dire, avec l'exemple:
J'ai vérifié ma mbox avec imaplib.IMAP4_SSL(...) à 16h00;
à 16h15 je suis allé à l'interface web gmail et marqué un de mes mails comme "lu";
à 16h30 je veux vérifier toutes les mises à jour dans ma boîte aux lettres, pour la période dans 4.01-maintenant, à travers imaplib.IMAP4_SSL(...).gmail imap: obtenir des messages récemment mis à jour

Répondre

0

Je ne pense pas que les serveurs IMAP enregistrent quand les drapeaux sont définis, juste le fait qu'ils sont définis. Je ne peux pas voir quoi que ce soit de la RFC qui suggère le contraire. http://www.faqs.org/rfcs/rfc3501.html Je suggère que vous deviez récupérer et stocker une liste de messages, et l'utiliser pour la comparaison la prochaine fois que vous allez chercher.

3

Pour vanilla IMAP, vous n'avez pas de chance. Mais si le serveur IMAP prend en charge l'extension CONDSTORE, vous pouvez le faire. Voir RFC 4551 section 3.3.1 pour les détails. Généralement, il implique le suivi de la valeur HIGHESTMODSEQ du dossier et l'émission d'une commande telle que

A001 UID FETCH 1:* (FLAGS) (CHANGEDSINCE 12345) 
Questions connexes