2009-04-17 4 views
6

Ich verwende Net :: POP3 in Perl, um ein Postfach auf einem MS Exchange Server zu durchlaufen. Ich führe den UIDL-Befehl für jede Nachrichtennummer aus und vergleiche die ID, die zu vorher gesehenen IDs zurückgegeben wurde, um zu sehen, ob ich diese Nachricht in der Vergangenheit bearbeitet habe. Ich finde aber auch, dass innerhalb einer einzelnen POP3-Mailbox die gleiche UID für verschiedene Nachrichten mehrfach auftaucht.Ist die UID, die vom MS Exchange POP3-UIDL-Befehl bereitgestellt wird, wirklich eindeutig?

Eine Idee, warum das passieren könnte? Ist die UID nicht wirklich eindeutig? Oder werden die Nachrichten irgendwie in derselben Mailbox dupliziert?

Antwort

3

The RFC sagt:

Während es im Allgemeinen bevorzugt für Server-Implementierungen speichern willkürlich zugewiesene eindeutigen-IDs in der Maildrop ist, diese Spezifikation sollte einzigartigen-IDs ermöglichen als berechnet zu sein Hash der Nachricht. Clients sollten eine Situation behandeln können, in der zwei identische Kopien einer Nachricht in einem Maildrop die gleiche eindeutige ID haben.

[Hervorhebung von mir]

+0

Danke, das ist genau das, was ich suchte. Es scheint, dass ich die Dinge richtig handhabe. Wenn ich dann auf eine bereits gesehene UID stoße, behandle ich sie als Duplikat und ignoriere die Nachricht. Eine tangentiale Frage wäre: "Wie kommt es zu dieser Art von duplizierter Nachricht?" Aber das ist außerhalb des Rahmens der ursprünglichen Frage. –

+0

@Peter Wood Nur ein kurzer Tipp - stellen Sie sicher, dass die UID-Lookup-Abfrage nach einer Groß- und Kleinschreibung sucht. Ich hatte Probleme, weil das Standardverhalten die Groß-/Kleinschreibung nicht berücksichtigte, was dazu führte, dass mein Code bestimmte E-Mails fälschlicherweise ignorierte. –

+0

Dieses Szenario von identischen Nachrichten passiert tatsächlich in der Praxis? Als ich diese Passage in der RFC gelesen habe, dachte ich, dass es immer nur eine streng theoretische Situation sein würde, wegen all der Zeitstempel und IDs, die Server in den Header schreiben. – billpg

Verwandte Themen