MBOX-Line: From gds at chartertn.net  Sun Oct  8 15:26:59 2017
To: imap-protocol@u.washington.edu
From: Gene Smith <gds@chartertn.net>
Date: Fri Jun  8 12:34:55 2018
Subject: [Imap-protocol] Is server re-use of UID OK?
In-Reply-To: <CAByav=gBnVkLg+4z90ewBvKRVtOrEQ7XESfirEQ1dyx=Sb0MXw@mail.gmail.com>
References: <38137c2b-f1f1-2bed-e22f-2aea7fa50ac3@chartertn.net>
	<CAByav=gBnVkLg+4z90ewBvKRVtOrEQ7XESfirEQ1dyx=Sb0MXw@mail.gmail.com>
Message-ID: <abb75221-a38a-3317-86a2-98a8340e55d3@chartertn.net>

On 10/8/17 5:43 PM, Tim Showalter wrote:
> On Sun, Oct 8, 2017 at 1:58 PM, Gene Smith <gds@chartertn.net 
> <mailto:gds@chartertn.net>> wrote:
> 
>     Copy a message with UID 1267 from Inbox to Mbox and deleted it in
>     Inbox. With Inbox selected:
> 
>     C: aaa UID COPY 1267 "Mbox"
>     S: aaa OK [COPYUID 123456789 1267 1007] UID COPY completed
>     C: bbb UID store 1267 +Flags (\Deleted)
> 
>     C: ccc UID COPY 1007 "Inbox"
>     S: ccc OK [COPYUID 987654321 1007 1267] UID COPY completed
>     C: ddd UID store 1007 +Flags (\Deleted)
> 
>     Does this seem like acceptable imap server behavior?
> 
> 
> No, this is a violation. Both messages have UID 1267, and if there is no 
> intervening EXPUNGE, the first message still exists when the second one 
> overwrites it. Neither behavior is remotely permissible.
> 
> Tim
> 

I think the server is thinking, "its the same message I am copying back 
to Inbox (how does it knows? Same Message-ID or maybe checksum?) so I 
don't have to do anything." If the server had at least reset the 
\deleted flag on message at UID 1267 in Inbox I think it would be OK. 
The rfc says COPY must preserve the flags. It also says messages added 
to a mailbox must have UID >= UIDNEXT. But if the server is copying in a 
message that is already present but just flagged as \deleted, maybe RFC 
doesn't say you can't COPYUID to the original UID which is < UIDNEXT? 
But I think the server should reset \deleted at the destination.

FYI, the server is a product called "openwave" used by a fairly large 
ISP (charter/spectrum).



