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@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@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@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)).