Hi,

I've been looking at the code in lmtp.c, pipe.c, sort/sort.c and dsn.c to see if we can do a bit better when a message can't be inserted because of a user being over quotum.

We *should* return an 552 message to the MTA, but currently we return a 450.

What to do?

We use db_copymsg() to copy the temporary message to the user's mailbox. db_copymsg signals the calling function when it fails because of an 'over-quotum-error'. However, we then return a DSN_CLASS_TEMP anyway.

We should improve the code to be able report a 552 to the MTA so it can send the appropriate bounce message.

Using LMTP, this should be quite easy, although we stil have a problem when an alias expands to two users, one of which is over-quotum. In this last case, I'd opt for sending the 552.

Using dbmail-smtp: I wonder what information we can send back to the MTA and how we can do this (in what format).

Ilja

Reply via email to