On Fri, 2002-10-18 at 18:07, Fredrik wrote: > After reading the dbmail manual i have a few suggestions. > > DBMail shouldn't actually bounce a message if it has lost the connection > with the database (such as during a reboot of the dbserver).. > It should send an error code back to the MTA with a softerror so that > the MTA can put the message back in the queue and retry to contact > dbmail-smtp a little bit later. >
According to RFC 1893, dbmail should signal the mta to generate a 4xx error code, specifically a 430 error code. 3.4 Mail system status X.3.0 Other or undefined mail system status The destination system exists and normally accepts mail, but something about the system has caused the generation of this DSN. However, I don't believe dbmail supports anything other than standard exit codes (eg can't be an lmtp server to deliver extended status attributes). So it should just exit with the can't write to mailbox temp fail exit code and be done with it. > Maybe something similar should be implementet for the quota bounce. > Quota bounces are also defined in 1893. It should return a 422 and be done with it. X.2.2 Mailbox full The mailbox is full because the user has exceeded a per-mailbox administrative quota or physical capacity. The general semantics implies that the recipient can delete messages to make more space available. This code should be used as a persistent transient failure. > One suggestion would be. > 1. New incomming email that will exceed the quota. > 2. Dbmail sends a softerror/retrylater to the MTA and puts a small > warning message in the inbox. So we're gonna push them even farther over the quota by filling their mailbox with another message every time they get a mail that goes over their quota... why not just deliver the message? > 3. It continues to do this until a configurable timeperiod has passed. That's a lot more tracking for the system. > 4. After the timeperiod has passed it should return to bouncing the > messages. > It should bounce the message with 422 immediately according to the rfc