[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lemonade] draft-ietf-lemonade-imap-sieve-00
On Wed Dec 21 16:05:52 2005, Barry Leiba wrote:
Dave Cridland wrote:
If Polymer wanted to both answer the message and forward it,
however, it now can't - the act of answering the message has
destroyed it forever. Of course, in fact, it might not have been
destroyed, but Polymer cannot know that.
Sieve scripts are meant to be user-defined things; if the user
wants to
file \Answered messages away, and remove them from her inbox, I
think the
user should be able to do that.
Yes. Out of curiosity, do you think all IMAP clients send the message
first, then flag as \Answered? Because if they don't, and they happen
to reference the message after flagging, perhaps via BURL, perhaps
not, for body parts, things might get a little confused if setting
\Answered causes the message to be destroyed.
I suppose what it comes down to is that you're arguing that clients
should
provide that function, and users who want it should choose clients
that do.
And that the function shouldn't be available on the server, through
Sieve
scripts.
Yes, but not because "that function shouldn't be available on the
server", but because IMAP servers should remain IMAP servers, and I
honestly think this breaks behaviour, because it allows different
clients to effectively define arbitrary semantics for flags which the
server then manages, in potentially confusing ways. I think allowing
message destruction as a automatic byproduct retrofitted onto FLAG
changes is opening a container full of worms, let alone a can. I
really cannot stress this enough.
The APPEND/COPY automatic message destruction is more palatable to
me, but the only use for it I can actually see is the notion of
retrofitting complex filtering and searching[1], which in my mind
would be better handled explicitly, and I think there's at least a
economy sized can of worms here too. I very much doubt that I'll ever
be comfortable with this.
To give a concrete example, I actually really like the notion of
telling a naïve client to store sent items in a folder which has an
APPEND/COPY Sieve script which relocates the message elsewhere,
depending on who it's sent to - I think it's a compelling use-case.
The only problem is that if a client then chooses to assemble the
message via CATENATE in that folder, quite innocently, then it'll
never find it again, so in practise a neat hack turns into serious
breakage. Which is a shame, as I think that's a reasonable thing for
a client to try doing, and worse, I cannot think of a workaround that
will interoperate with Lemonade Profile 1 clients.
That's not a "concern", for me, that's a complete showstopper.
That argument is fine, but for "diverse service environments",
where we
might WANT some of this stuff done on the server.
Automated filing of older messages sounds cool to me. Hence an
explicit RUNSIEVE command, fully supported by the client.
When we get down to it, though, this document was written because
of the
need to do notifications, so my thoughts about what else one might
do with
these functions are speculative. See below.
Sure. In general, I think you're on to something good. I just think
you're being a little *too* speculative. :-)
Let's just stick with notifications, and optionally flag changes, for
now at least. I think reject needs a little more thought - I'm not
convinced it's a good idea. For a start, I realised that the
sync/non-sync literal problem doesn't even register - a Sieve script
is likely to want the entire message before deciding to reject it.
Fileinto/discard really do scare the hell out of me.
> I also have a nasty feeling that some clients will take it upon
> themselves to make setting the \Deleted flag instantly expunge
the
> message.
This certainly doesn't give them license to do that.
That's exactly what it does do. This grants full license to anyone
and everyone to provide their very own favourite semantics for
mailstores.
It does not, and I can't see how you can claim that. But let's not
get
into an "Is so! / Is not!" match.
Aw. We could do "Oh, yes, it is! / Oh, no, it isn't!" if you're up
for a bit of Pantomime, it is the season, after all.
Whether this is a good idea or not is something the implementer
of the
script has to decide.
No, it's not. It's up to the one client author who doesn't like a
two phase delete, and sticks an innocuous checkbox marked "Delete
Immediately" somewhere.
Oh, be real: a client author who wants to do that already can, by
just
putting in the checkbox and putting code in that always sends
EXPUNGE
whenever it sets the \Deleted flag. The IMAP spec is quite clear
about
that being a bad idea, and clients insist on implementing "Trash"
mailboxes anyway. This doesn't change anything with respect to
THAT.
No, it means that one client author can not only instruct the server
to change the semantics for them, but impose their views on everybody
else. That's quite a major change, I think.
Okay, so it can lie about the UIDs all the time, breaking
I had thought that UIDPLUS allowed an "I don't know the UID"
response;
as I look again, I see that it doesn't. OK.
Mark's newer draft does allow ommission of the UIDPLUS responses
(COPYUID and APPENDUID), but only, IIRC, in the case where the
mailbox declares itself as having non-sticky UIDs. In principle, I'd
be fine with dropping the response even so, but there's no method for
ommitting a single UID, in the case of MULTIAPPEND/COPY.
Without meaning to sound arrogant, it doesn't matter a jot what
anyone thinks. Message content in IMAP is immutable. The only way
to allow EditHeader would be to allocate a new UID for the
message, which in turn destroys the cache.
Uh, we ARE assigning new UIDs, and we're NOT changing headers on
existing
messages. My draft explicitly says that the EditHeader actions are
only
available for NEW MESSAGES, and so only for cause=APPEND and
cause=COPY.
You misunderstood, and reading my own writing, I'm not surprised. I
meant allocate a new UID for the message compared with the one
generated by the normal APPEND/COPY mechanism and returned by
UIDPLUS. It doesn't help that I don't think of APPEND as operating on
a new message - messages are only copied in IMAP, in my mind,
creation happens outside its scope.
That said, you've brought up a point that I hadn't considered: that
clients expect the messages created by APPEND and COPY to be
unchanged,
Exactly. Hence where EditHeader is used, the clients see the message
instantly destroyed, exactly like your fileinto/discard proposals.
[[
1. Searching with Sieve, a imap-sieve hack: Create a fresh mailbox.
Add a Sieve script which discards messages you don't want on COPY. Go
through all source mailboxes you fancy, performing COPY 1:*. Finally,
open the fresh mailbox and see what you find. It's much more powerful
than the inbuilt IMAP SEARCH, and allows full "virtual scrolling"
through the results.
]]
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