how_to:vpop3_deleting_messages_as_old_messages

VPOP3 Deleting messages as 'old' messages

If VPOP3 says 'deleting old message' in the status window activity log that means that it has seen the unique ID of that message before, longer ago than the time specified for VPOP3 to leave messages on the server, so it thinks that the message is an old message, and so deletes it.

With the POP3 protocol, the POP3 server will give each message a 'unique ID' which has to stay with the message for as long as it exists on the server. This is used by the POP3 client to determine if it has seen a message before. VPOP3 remembers the unique ID of each message it has downloaded, and when it downloaded it, so that it won't download the message again, and then, the correct time after it downloaded the message it will delete the message from the POP3 server.

Unfortunately, there are no rules regarding the reuse of unique IDs by the POP3 server, which can lead to ambiguous behaviour

For instance:

  1. message arrives and the server gives it unique id '1'
  2. One POP3 client logs onto that mailbox downloads the message and remembers that it has downloaded message '1'
  3. another POP3 client logs onto the mailbox downloads the message and deletes it from the server
  4. a new message arrives, and the server re-uses the unique id '1' (which is allowed by the standard)
  5. the first POP3 client logs onto the mailbox and sees that the message '1' is there, so doesn't download it, or even decides to delete it (even though it is actually a new message)

Because of this possible ambiguity, most POP3 servers will not reuse unique IDs, or at least won't reuse them within a short timespan (VPOP3's POP3 server never reuses unique IDs). Unfortunately, a few POP3 servers do reuse IDs.

There is another issue which can sometimes happen with some ISPs which is that sometimes a message may re-appear after being deleted, or may occasionally just spontaneously disappear and then reappear. Because of that, VPOP3 will remember unique IDs which it has seen for a few days even after the message has disappeared (in case it comes back again, to prevent duplicate downloads)

Both of these issues together can cause VPOP3 to think that new messages are old messages, even if it is the only POP3 client accessing the ISP's mailbox:

  1. message arrives and the server gives it the unique id '1'
  2. VPOP3 downloads the message and remembers the unique id
  3. a few days later, VPOP3 deletes the message, but still remembers the unique id
  4. a new message arrives, and the server re-uses the unique id '1'
  5. VPOP3 connects again, sees message '1', thinks the previously deleted message has reappeared, so deletes it again

The ideal solution to this problem is for the ISP's POP3 server not to re-use unique ids, but that would require a change at the ISP.

If it is not possible for the ISP to fix the problem on their server, you can tell VPOP3 not to remember unique IDs once it has deleted the message once. You can do this by going to the VPOP3 settings → Settings → Misc Settings → Advanced, and set Hold Obsolete UIDLs for to “0 days”. Note that this will not solve the ambiguity described above because of the re-used unique ids, and it also causes the possibility of messages being duplicated if a deleted message becomes undeleted again for some reason.

(see also Mail Not Downloading from ISP)

how_to/vpop3_deleting_messages_as_old_messages.txt · Last modified: 2018/11/14 10:45 by 127.0.0.1