On Tue, Aug 06, 2013 at 09:27:20PM +0300, Timo Sirainen wrote:
On 6.8.2013, at 20.57, Thomas Leuxner <tlx@leuxner.net> wrote:
- Timo Sirainen <tss@iki.fi> 2013.08.06 19:42:
The idea behind quota_grace is that the last mail would be allowed to take the user somewhat over quota (e.g. up to 109% quota usage). On the next mail delivery user is already over quota, so the size of the mail is irrelevant because a mail of any size will be rejected. The initial quota-status implementation didn't even support SIZE extension since I didn't remember it existed.
I'm referring to the Postfix side _only_ or the initial SMTP Handshake if you like. My point is that there is no safe way to reject mails at this level *if* the remote server doesn't play nice. I think this was the whole point of writing a policy service for Postfix. I'm not *talking* about quotas that will be handled by the delivery agents...
Either you're still misunderstanding me, or vice versa. The quota rejections can be done complete in SMTP side even without SIZE:
Another way, in Postfix, is to wait for end-of-DATA. Regardless of SIZE being given, at that point, the actual size is known.
Of course as Thomas would probably point out, such a rejection is unsafe, because ANY overquota recipient would cause rejection for EVERY recipient; SMTP cannot have per-recipient results except at "RCPT TO:".
Personally, I'd much rather allow the last overquota mail, even in cases where the user goes far over the quota. Apparently Thomas intends to have a solid, inflexible quota.
In that case I'd suggest going for a lower quota and adding quota_grace. Let quota_grace plus quota be the most you can tolerate in your users' mailboxes.
- quota at 99% :
MAIL FROM:<sender@example.com> 250 2.1.0 Ok RCPT TO:<tss@dovecot.org> 250 2.1.0 Ok DATA ... . 250 2.0.0 Ok: queued as 12345
- quota is now at 103% :
MAIL FROM:<sender2@example.com> 250 2.1.0 Ok RCPT TO:<tss@dovecot.org> 554 5.2.2 User is over quota
-- http://rob0.nodns4.us/ -- system administration and consulting Offlist GMX mail is seen only if "/dev/rob0" is in the Subject: