On Sun, 2004-01-04 at 18:57, Pete Maclean wrote:
> The only alternatives I see, given the particular constraints upon my 
> server, are to behave like the UW server and disallow multiple concurrent 
> selections or make a copy of every mailbox as it is selected.  However, 
> implementing the latter would entail an amount of work and impose an 
> efficiency toll of such magnitude that I cannot see undertaking it.  Adding 
> the former as an option is something I am considering.

Something I just thought about doing optionally: Mark the message
expunged using some non-standard flag and expunge it later (maybe in
some nightly run). Don't show expunge-marked messages to clients, unless
they haven't been notified that it's been expunged. Don't do the real
expunging unless the flag was set less than hour ago. That should make
it highly unlikely that anyone hasn't been notified of the EXPUNGE yet.

With mbox this could be done by adding a new header (X-IMAP-Expunged:
timestamp). With maildir it could be done adding a new X flag to the
file and checking it's ctime. Of course these work only with my IMAP
server, but other software shouldn't get bothered about it. And of
course, if other software expunge mails directly I still have to do some
fallback handling.

Fallback handling that I'm thinking about doing is to issue BYE whenever
the expunged message is accessed, except possibly if only FLAGS are
fetched, server could always return \Deleted for it.

For STORE I could just ignore changes in expunged messages and return
"* 123 FETCH (FLAGS (\Deleted))" for them.

Maybe you could do something similiar.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to