quota_full_tempfail = yes broken with lmtp_rcpt_check_quota (was: Re: lmtp_rcpt_check_quota not working)
Bernhard Schmidt
berni at birkenwald.de
Thu Jan 29 12:53:07 UTC 2015
Bernhard Schmidt <berni at birkenwald.de> wrote:
Hi,
> Axel Luttgens <AxelLuttgens at swing.be> wrote:
>
> Hi Axel,
>
>> Le 11 févr. 2014 à 08:34, Bernhard Schmidt a écrit :
>>
>>> [...]
>>> so Dovecot should reject in RCPT TO phase, but according to the logs of the
>>> upstream Postfix it does so after END-OF-DATA
>>>
>>> (host xxx[2001:xxx] said: 452 4.2.2
>>> <user at domain.de> Quota exceeded (mailbox for user is
>>> full) (in reply to end of DATA command))
>>> [...]
>>
>> Hello Bernhard,
>>
>> Could you exercise your quota-status service with variations of:
>>
>> # telnet xxx 12340
>> Trying xxx...
>> Connected to xxx.
>> Escape character is '^]'.
>> recipient=john.doe at example.com
>> size=1000000
>>
>> action=OK
>>
>> ^]
>>
>> and see whether the replies are the expected one?
>>
>> If yes, this would point to some error in Postfix' configuration.
>>
>> If not, well... could be you are facing the same kind of problem I'm
>> having here (never managed to have the service reply anything else
>> than "OK" or "REJECT Unknown user"...)
>
> quota-status works absolutely fine, our frontend MXes defer mails for
> mailboxes over quota. But when we try to send a mail to the mailbox
> nevertheless through LMTP (i.e. because it was generated on a server
> that doesn't check quota-status), it is deferred in LMTP in the
> END-OF-DATA phase, not in RCPT TO as expected.
To follow up here:
Dovecot 2.2.13 (from Debian testing compiled on wheezy) is still showing
the same behaviour as 2.2.9. lmtp_rcpt_check_quota is apparently
ignored, the over-quota defer happens after the DATA phase.
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.8
[...]
lmtp_rcpt_check_quota = yes
quota_full_tempfail = yes
protocol lmtp {
mail_plugins = quota sieve
}
-> MAIL FROM:<sender at domain.de>
<- 250 2.1.0 OK
-> RCPT TO:<recipient at domain.de>
<- 250 2.1.5 OK
-> DATA
<- 354 OK
-> Date: Thu, 29 Jan 2015 13:35:51 +0100
-> To: recipient at domain.de
-> From: sender at domain.de
-> Subject: test Thu, 29 Jan 2015 13:35:51 +0100
-> X-Mailer: swaks v20120320.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<** 452 4.2.2 <recipient at domain.de> Quota exceeded (mailbox for user is full)
With 2.2.15 from dovecot-ee it is different. The quota is now checked at
RCPT stage
# 2.2.15.8 (912dd04d7a14+): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.6 (4b9b9a88ac9b)
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.8
-> MAIL FROM:<sender at domain.de>
<- 250 2.1.0 OK
-> RCPT TO:<recipient at domain.de>
<** 552 5.2.2 <recipient at domain.de> Quota exceeded (mailbox for user is full)
But as you can see, the setting for quota_full_tempfail is now ignored.
It should be deferring the message, not rejecting it. When I disable
lmtp_rcpt_check_quota it behaves like 2.2.13.
Summary:
- In 2.2.9 and 2.2.13 lmtp_rcpt_check_quota is ignored
- In 2.2.15 lmtp_rcpt_check_quota works, but quota_full_tempfail is
ignored at the RCPT TO stage. It still works at the DATA stage, so
disabling lmtp_rcpt_check_quota is a workaround falling back to 2.2.13
behaviour
Bernhard
More information about the dovecot
mailing list