Red Hat Bugzilla – Bug 63517
Mail for users who have exceeded disk quota is not bounced
Last modified: 2007-04-18 12:42:00 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-31 i686)
Description of problem:
When an email is sent to a user who has exceeded his/her disk quota,
the message is not bounced, but is queued in /var/spool/mqueue and retried for 5
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Enable quotas on the mail spool partition.
2. Assign a mail user a disk quota of 10M.
3. From another machine on the network, send that user an 11M attachment.
Actual Results: - Sendmail accepts incoming message and spools it to
- maillog contains "[...]stat=Deferred: local mailer (/usr/bin/procmail) exited
Expected Results: Message should bounce back to sender with a note that "Your
mail was not delivered - user has exceeded disk quota" or something to that
The sendmail configuration that ships with RH L7.2 defines procmail as the local
mailer (LDA). That's all fine and good. What's causing the problem is that it
is specified with the -t switch, which causes it to treat delivery failures as
temporary instead of permanent errors.
From the procmail man page: "-t makes procmail fail softly, i.e., if procmail
cannot deliver the mail to any of the destinations you gave, the mail will not
bounce, but will return to the mailqueue. Another delivery-attempt will be
made at some time in the future."
When the -t switch is removed, bounce messages are properly sent when
recipients are over disk quota. I haven't noticed any side effects
from removing the -t switch. If there is no reason for it to be there, I
suggest that you remove it from the default configuration.
I'd personally recommend a wontfix on this. You're perfectly capable of
changing that setting in your sendmail.mc file if you want. Since people tend
to hit their quota for short periods of time and then recover from it, it's
better to hold and redeliver in most cases so that user doesn't lose any mail,
and for dataloss reasons it makes better sense to make that the default. If you
want to be more strict, change your setting.
Look for this line in your sendmail.mc file:
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
and remove the -t
bounce != lost mail.