perlexchange-serverpop3uidl

Is the UID provided by MS Exchange POP3 UIDL command truly unique?


I'm using Net::POP3 in Perl to iterate through a mailbox on an MS Exchange server. I run the UIDL command on each message number and compare the ID returned to previously-seen IDs to see if I've dealt with this message in the past. However, I'm also finding that within an individual POP3 mailbox, the same UID seems to come up multiple times for different messages.

Any idea why this might be happening? Is the UID not truly unique? Or are the messages somehow being duplicated within the same mailbox?


Solution

  • The RFC says:

    While it is generally preferable for server implementations to store arbitrarily assigned unique-ids in the maildrop, this specification is intended to permit unique-ids to be calculated as a hash of the message. Clients should be able to handle a situation where two identical copies of a message in a maildrop have the same unique-id.

    [my emphasis]