[Imap-uw] Outlook deadlock
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
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?
More information about the Imap-uw