[Imap-uw] Outlook deadlock

Michael Cashwell mboards at prograde.net
Wed Sep 19 06:21:29 PDT 2007


On Sep 18, 2007, at 5:35 PM, Mark Crispin wrote:

>> True.  A better implementation would be to display a virtual  
>> "Trash" folder, that would display all messages that have been  
>> marked for deletion.  Dragging a message from there back to the  
>> folder it's really in would simply clear the deleted flag, or  
>> dragging it to a different folder might copy it silently.
>
> My point exactly!

I was on a team that produced what would seem to be a good IMAP  
client for a closed system back in the late 90s. (Yes, Mark. We used  
the c-client library! ;-) In addition to knowing the difference  
between caching and prefetching that I noted before it also did what  
Mark said regarding not asking for things it didn't need.

But on the trash question I really struggled. Here's the list of  
features I demand:

1: When I delete a message it must visually vanish from all lists  
right then.

2: If I delete by mistake I can "undo" immediately or somehow find  
the message later and reverse the deletion. (Undo might only save a  
fixed number of actions but I might decide I deleted something days  
ago and even in a different session, so I need some way to reverse it  
more or less manually.)

3: Mail I've deleted must still participate in some searches. (By  
some I mean I need to be able to have the search selectively include  
messages I've deleted. I initially want to search mail I've not  
deleted but if I can't find something then I expand the search.) The  
main way I realize I delete something by mistake is when it's found  
during a search.

4: When I delete mail, unless I undo it, I never want to have to  
handle that mail again. Most immediate deletions are spam and like in  
the real world I never want to have to touch it a second time and  
evaluate again "Do I need this?"

Number 4 is a high bar in my client selection. What I want here is  
"aged expunge" with the age time being a preference. Once I delete a  
message I want it to silently expunge itself that many days later.

So back to the implementation of deletion. An obvious way to either  
include or exclude email that I've deleted but is still in its dwell  
time is to have moved it to a trash folder. I can selectively include  
that folder in the search.

Further, to get the "aged expunge" I needed to execute a search  
program involving dates and then expunge those that matched. But  
again, isn't that going to be most efficient if those messages exist  
only in some trash folder? I tried to come up with a way to code the  
"aged expunge" logic while leaving deleted messages in place but I  
then had to run that search command over my entire email repository  
which was slow.

I'm way past working on this project, so this is just hypothetical,  
but did I miss an obvious way to do this?

-Mike



More information about the Imap-uw mailing list