> Also I was wondering if there is a way to tell qmail-smtpd to exit
> with a 5xx error code rather than a 4xx error on spam or a virus?
> I am running qmail out of supervise, not that it should make any
> difference that I can see.
Look at the end of qmail.c in the qmail distribution.
The exit code of the child program (qmail-queue or $QMAILQUEUE)
determines what error message is spit out in SMTP.
The short answer is:
Exit code 0 means successful delivery.
Exit codes between 11 and 40 are permanent (5xx) errors.
All other exit codes are temportary (4xx) errors.
A longer answer is:
Have your program exit with a specific exit code and then add a custom
message in qmail.c to handle that code. For example:
case 32: return "Dmail server thinks this message is spam(#5.3.0)";
case 33: return "Dvirus rejected(#5.3.0)";
case 34: return "Dyou send us nothing but crap(#5.3.0)";
case 35: return "Dyou are listed in the our blackhole list(#5.3.0)";
case 36: return "Dleave us alone, jackass(#5.3.0)";
case 41: return "Zif you are not a spammer, try again in 5 minutes(#4.3.0)";