MBOX-Line: From mrc at CAC.Washington.EDU  Mon Nov 28 10:40:04 2005
To: imap-protocol@u.washington.edu
From: Mark Crispin <mrc@CAC.Washington.EDU>
Date: Fri Jun  8 12:34:36 2018
Subject: [Imap-protocol] Re: IMAP capability for maximum APPEND message size?
In-Reply-To: <1132853918.6797.13.camel@hurina>
References: <Pine.OSX.4.64.0511231556030.533@pangtzu.panda.com> 
	<1132831193.14231.285.camel@localhost.localdomain> 
	<Pine.OSX.4.64.0511240618280.533@pangtzu.panda.com>
	<1132853918.6797.13.camel@hurina>
Message-ID: <Pine.OSX.4.64.0511281018540.562@pangtzu.panda.com>

On Thu, 24 Nov 2005, Timo Sirainen wrote:
>> You all are also overlooking the question of *administrative* limits.
>> SMTP's SIZE verb is an *administrative* limit, not a technical limit.  I
>> think that that we need something similar for IMAP.
> What non-technical reasons do there exist to limit it?

The same reasons that exist for SMTP; the server administrator wishes to 
establish a limit based upon policy or just to avoid inadvertant denial of 
service.

> For SMTP I think it's mostly to prevent abuse (intentional or
> accidental), but with IMAP there are better ways to intentionally abuse
> the server and accidentally storing a huge mail doesn't really bother
> anyone, you'll only have less disk space/quota.

I think that you're missing the "accidental" part.  Of course, a malicious 
clients can always cause problems.  But problems can also be caused by 
accident.

To satisfy an APPEND, the incoming data generally has to be staged; it can 
not be delivered directly since otherwise you would have a denial of 
service situation for the destination mailbox.  Yes, a server using a 
one-message/one-file format *can* cheat for a single message, but that 
doesn't work for MULTIAPPEND (remember that a failed or aborted 
MULTIAPPEND must not alter the mailbox).

This staging can be in temporary files, or in memory, or both.  Either 
way, a request to upload a 4GB - 1byte message could overtax the capacity 
of the server to do the staging, or the message store to hold the message, 
or both.  Or it may just be administrative policy not to allow 4GB - 1byte 
messages.

If a server establishes a limit for this reason, the client should have a 
way of knowing about this limit.  Right now, the client would just get an 
error message and not know the reason.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.

