Re: [Imap-protocol] Is server re-use of UID OK?

Gene Smith <[email protected]> Mon, 9 Oct 2017 16:41:24 -0400
Newsgroups gmane.mail.imap.general
Message-ID <[email protected]>
On 10/9/17 10:39 AM, Arnt Gulbrandsen wrote:
> Gene Smith writes:
>> Yes, for other IMAP servers I have tested, if I copy message "A" 10 
>> times into Inbox I see 10 identical copies of message A in Inbox. For 
>> this openwave server, I see only 1 (and uid fetch 1:* (FLAGS) shows 
>> only 1).
> 
> Have you tested with gmail?

Just tried gmail and and if I copy a message multiple times there 
remains only one copy of the message in the destination folder. I 
haven't looked at the imap transactions to to see what is actually 
happening.

With imap.outlook.com it does allow multiple duplicate messages to be 
copied in so I assume it is assigning new and higher UID to each duplicate.

imap.yahoo seems different. When I copy in a duplicate, at the 
destination folder that message seems to disappear in my client for 
about 1/2 second or so and then come back. I did look at the imap 
transaction for yahoo to see what is happening. Yahoo is assigning a new 
and higher UID each time the duplicate message is copied to a 
destination but it seems to be silently expunging the previous UID for 
the message. I see nothing being "stored", such as \deleted, to the 
message's previous UID and I see no expunge responses. As multiple 
duplicate copies occur, the gap between the highest UID and the next to 
highest UID grows (based on uid fetch 1, *).

Zimbra and mDaemon allow multiple duplicates to be copied in like 
outlook. Haven't looked at transaction details.

> 
> The server doesn't seem to reuse a UID, if I understand you correctly. 
> The message has a UID before the COPY command and nothing changes. The 
> UID is in continuous use for a particular message, so there's no reuse 
> going on, and the ban on reuse does not apply.

Yes, in the mbox where the message was deleted, its UID is still present 
but with the \deleted flag set. The same message but with a different 
UID is in Trash. When I try to copy it back to the original mbox from 
Trash, the server indicates that it is copying it to the original UID 
(not >= UIDNEXT). The main problem I see is that this copy doesn't clear 
the \deleted flag for the UID in the original folder so the message 
remain invisible in the client.

> 
> Can you find out whether flags apply to the message or to references? 
> Ie. if you copy a message into two mailboxes and set flag "foobar" on 
> the message in one mailbox, does the flag appear on the message in the 
> other mailbox?

Actually, this is what happens when I delete a message from openwave 
server. In the original folder the message's UID gets marked with 
\deleted flag and the message is not expunged. In the Trash folder where 
the client copies it on delete, the \deleted flag is *not* set. So the 
exact same message resides in two folders with differing flags.

As an additional test on openwave, I copied a message from Inbox to two 
different folders. In one folder I set several attributes (Important, 
Starred, Junk, Unread). In the other folder these flags don't appear for 
the exact same message. I then copied the this highly-flagged message 
back to Inbox attempting to overwrite the original. These attributes did 
not appear in the original message in Inbox.

> 
> Arnt
> 
> _______________________________________________
> Imap-protocol mailing list
> [email protected]
> http://mailman13.u.washington.edu/mailman/listinfo/imap-protocol

_______________________________________________
Imap-protocol mailing list
[email protected]
http://mailman13.u.washington.edu/mailman/listinfo/imap-protocol