Re: Three kinds of IMAP extensions

Arnt Gulbrandsen <[email protected]> Tue, 20 Oct 2015 07:13:06 +0100
Newsgroups gmane.ietf.imapext
Message-ID <[email protected]>
Stu Brandt writes:
> On 10/19/15 11:44 AM, [email protected] wrote:
>> The drafts folder does not count because nothing appended there is big
>> enough to care about this extension.
>
> Anything with photos or videos or other rich media/files in it 
> runs the risk of being too large. Clients are increasingly doing 
> incremental save-to-draft as users compose messages, so whatever 
> the user composes ends up "in the cloud" within a few minutes.

Consider that.

Suppose you write a mail reader and want to save drafts every two minutes 
and support IMAPAPND. So you write a function:

  1. If the server supports IMAPAPND, and the draft message including
     attachments is within the mailbox' size limit, write it.
  2. Otherwise write the draft to the mailbox, but with references instead
     of the attachments. Perhaps a header field called 
"X-Myclient-Attachment:
     <local file name here>"

IMAPAPND has a limit, so you have to write step 2. The question you now 
have to consider is: why value does step 1 give you?

It gets worse. Suppose that your mail reader is on a mobile device with 
both WLAN and mobile data, and that in your target market many people may 
per gigabyte for mobile data, and that sending costs no money but eats the 
battery. So someone on your team suggests the following change:

  1. If on WLAN, set a high limit for how big messages can be.
  2. If on mobile data, set a lower limit.
  3. If server supports IMAPAPND, use its limit instead.
  4. If the draft message including attachments is within the mailbox' size
     limit, write it.
  5. Otherwise write the draft to the mailbox, but with references instead
     of the attachments. Perhaps a header field called 
"X-Myclient-Attachment:
     <local file name here>"

A third member asks: Why don't se skip step 3? What value does IMAPAPND 
bring us? And it's a really good question. You can change step 3 to be 
conditional, but the question remains.

IMAPAPND has to be simple enough to survive discussion of whether 
implementing and testing step 3 takes too much time.

> For server dev, I'd think the simplest is to add 
> "APPENDLIMIT=<your-servers-appendsize-limit>" where 
> your-servers-appendsize-limit ideally comes from some existent 
> limit configured in your server. This is what we implemented.
>
> For client dev, I'd think the simplest is to look for 
> "APPENDLIMIT=" capability and steer users away from trying to do 
> operations that would require appending oversized messages -- 
> "Your draft/note is too large to save" or "Sorry, that message 
> is too large to copy from AccountA to AccountB. AccountB only 
> accepts messages less than <appendlimit> bytes."
>
> Perhaps I'm oversimplifying, though :)

I think you may be simplifying enough, but I'm not sure.

Arnt

_______________________________________________
imapext mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/imapext