2009-03-27 7 views
1

J'écris un client de messagerie POP3. Je veux laisser les messages sur le serveur, mais je ne veux pas avoir à télécharger tous les messages chaque fois que je me reconnecte.Le protocole POP3 vous permet-il de spécifier un sous-ensemble d'e-mails à télécharger?

Si je télécharge tous les messages aujourd'hui, et que je me reconnecte demain, le protocole supporte-t-il la possibilité de télécharger uniquement les messages des dernières 24 heures ou d'un certain ID séquentiel? Ou devrais-je télécharger à nouveau tous les messages?

Je suis conscient de la caractéristique Unique IDentification Listing, mais selon http://www.faqs.org/rfcs/rfc1939.html il n'est pas pris en charge dans la spécification d'origine. La plupart des serveurs de messagerie prennent-ils en charge cette fonctionnalité?

Oui, mon client prend également en charge IMAP, mais cette question concerne spécifiquement les serveurs POP.

+0

Pourquoi les gens insistent-ils encore pour utiliser POP en 2009? –

Répondre

1

Je l'ai fait.

Vous devrez relire tous les en-têtes mais vous pouvez décider quels messages télécharger.

Je ne me souviens de rien dans l'en-tête qui vous donnera un horodatage infaillible, cependant. Je ne crois pas que votre solution soit possible sans tenir un registre de ce que vous avez déjà vu.

(Dans mon cas, je me fichais - je cherche simplement des messages avec certaines caractéristiques d'identification dans l'en-tête -. Ces messages ont été téléchargés, traités et tués, tout le reste n'a pas été touché)

I aussi se demander si vous ne comprenez pas le protocole. Tout simplement parce que vous téléchargez un message ne signifie pas qu'il est supprimé du serveur. Il est seulement retiré du serveur si vous donnez une commande explicite pour tuer le message. (Et quand un message contient tellement de pièces jointes que les délais du système avant que vous ne vous déconnectiez correctement et que votre commande kill ne soit supprimée, vous serez poussé au mur!) (C'était un oubli dans la conception. attacher un fichier sur 100k, ou autant que possible dont le total était inférieur à 100k.Une autre tâche barfar et généré des milliers de fichiers d'environ 100 octets chacun.Alors c'était un courrier électronique parfaitement légitime, mais extrême, rien ne pouvait le tuer !)

Ainsi, si j'écrivais un client de messagerie, je téléchargerais simplement tout ce que je n'avais pas déjà localement. Si c'est supposé rester sur le serveur, bien, ne donnez pas la commande kill.

0

La façon dont j'ai vu que traité dans le passé est sur une base de client par client. Par exemple, si j'utilise Scribe pour obtenir des e-mails sur une machine sans les supprimer, puis passer à une autre machine, tous les e-mails sont à nouveau téléchargés malgré le fait que je les ai déjà vues. En interne, j'imagine que le client dispose d'une table qui stocke si un e-mail a déjà été téléchargé ou non.

Il n'y a rien dans le protocole que je sache qui permettrait cela.

3

Avez-vous envisagé d'utiliser IMAP?

0

Sort-of. Vous pouvez télécharger des messages individuels, mais vous ne pouvez pas stocker d'état sur le serveur distant. Voir la commande RETR à l'adresse http://www.faqs.org/rfcs/rfc1939.html.

Questions connexes