[Dovecot] Dovecot discards mail over quota

Gary V mr88talent at gmail.com
Tue Jan 20 03:25:44 EET 2009


On 1/19/09, Ulrich Zehl wrote:
> On Sun, Jan 18, 2009 at 12:26:46PM -0700, Gary V wrote:
> > Just as a matter of interest. On my Postfix system:
> >
> > a) Using deliver -e, Postfix bounces the message immediately 5.7.0 ->
> > Subject: Undelivered Mail Returned to Sender. Partial body:
> > "<test at example.com>: permission denied. Command output: Quota exceeded
> > (mailbox for user is full)". Postfix does not retain the message.
> >
> > b) quota_full_tempfail=yes: defers the message with 4.3.0. If the user
> > makes room for the message, then it will eventually be delivered. If
> > they don't, then _eventually_ a bounce will be sent. In this case the
> > bounce is less informative. Partial body: "<test at example.com>:
> > temporary failure". In the case where the message is not delivered,
> > using default settings in Postfix, the sender will be notified 5 days
> > after they sent the message.
> >
> > c) For over quota with a+b, it behaves the same way as b, but the
> > bounce notice will be more informative: Partial body:
> > "<test at example.com>: temporary failure. Command output: Quota exceeded
> > (mailbox for user is full)".
> >
> > I would say this is expected.
>
> You can also quota_exceeded_message to something like "4.2.2 Mailbox full"
> (or "5.2.2 ..."). This works whenever -e is specified, i.e. for a) and c),
> and you use Postfix 2.3 or later (see pipe(8)).
>
> > Each of the four possibilites has advantages and disadvantages, and
> > personally I think a) might be closest to "doing the right thing", but
> > it would be cool to have the option of deferring the mail (using
> > option a+b) and additionally have deliver immediately send a message
> > to the sender notifying them that their mail has been delayed due to
> > the recipient being over quota. Something like:
>
> This is also easy with Postfix, if you use delay_warning_time (see
> postconf(5)).
>

Right, thank you so much. I thought there was something like
delay_warning_time that could make c) a workable choice. In fact, now
I remember setting that up on my production server (when I had one a
year ago) so senders would get notified their mail was still queued:


This is the mail system at host msa.example.com.

####################################################################
# THIS IS A WARNING ONLY.  YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
####################################################################

Your message could not be delivered for more than 1 hour(s).
It will be retried until it is 3 day(s) old.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<test at example.com>: temporary failure. Command output: Quota exceeded
(mailbox for user is full)

-- 
Gary V


More information about the dovecot mailing list