[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lemonade] draft-ietf-lemonade-imap-sieve-00
On Mon Dec 19 05:13:53 2005, Barry Leiba wrote:
I have just sent the attached draft to be published as an I-D.
It's a
first pass at describing an extension to IMAP and Sieve that could
be
used to drive server-to-client notifications with a Sieve script.
Please review and comment here, and especially note the "open
issues"
section.
There's quite a few mentions of atomic moves - these can be quite
slow for some mailstores, and in general they're tricky, and they
almost invariably involve maintaining locking on multiple mailboxes.
Moreover, I really do fear what a naïve client - or indeed any client
- will do when it casually flips a flag, and discovers the message
has just been expunged. Even if it's not naïve, but is the most
intelligent and aware client in the world, I don't see how it's going
to detect the difference between "this flag change caused the message
to be atomically moved" and "this flag change didn't happen because
the message was already expunged".
I also have a nasty feeling that some clients will take it upon
themselves to make setting the \Deleted flag instantly expunge the
message.
I also think it's likely to break UIDPLUS - a client will lose track
of apparently witnessed moves, because it has no idea of what the new
UID is, as well as not knowing if the message still exists somewhere
else on the server. If even one message is moved in a MULTIAPPEND,
then the APPENDUID response cannot be sent.
Section 3.8 suggests that even if the message isn't shifted about
atomically behind the client's back, and UIDPLUS actually works, then
because the headers may be edited, a client will potentially have the
wrong data in the cache.
Oddly enough, I do think we could use reject, though. Reject could
generate a protocol level error, hence an APPEND or COPY to a mailbox
could be forced to fail for a fairly arbitrary reason, for instance.
Of course, with APPEND and LITERAL+, that's going to make client
implementors a little upset.
Really, I think this ought to limit itself to two actions:
1) Notifications, so that message appends, copies, and flag changes
can be sent to disconnected devices.
2) Flag changes, primarily for interoperability between clients using
locally defined keywords.
Otherwise, I'm really not sure how we're going to get all those worms
back into the can.
Dave.
--
You see things; and you say "Why?"
But I dream things that never were; and I say "Why not?"
- George Bernard Shaw
_______________________________________________
lemonade mailing list
lemonade at ietf.org
https://www1.ietf.org/mailman/listinfo/lemonade