# Patches fetchmail's behaviour for SMTP servers which: # 1) insist on using TLS - we do not want messages which cannot # be sent due to server negotiation problems lost - rather we # keep them on the mailserver. As users should realize rather # quickly that something went wrong, the overhead shouldn't # be considered that important. # 2) use the 501 error code to mark spam - in such a case # the 'antispam' option should be used --- fetchmail-6.3.8.orig/sink.c 2007-03-30 00:45:17.000000000 +0200 +++ fetchmail-6.3.8/sink.c 2007-09-25 17:37:49.332165910 +0200 @@ -535,7 +535,32 @@ free(responses[0]); return(PS_REFUSED); - default: + case 530: /* must issue STARTTLS error */ + /* + * Some SMTP servers insist on encrypted communication + * Let's set PS_TRANSIENT, otherwise all messages to be sent + * over such server would be blackholed + */ + free(responses[0]); + if (outlevel > O_SILENT) + report_complete(stdout, + GT_(" SMTP server requires STARTTLS, keeping message.\n")); + return(PS_TRANSIENT); + + case 501: /* Syntax error in parameters or arguments */ + /* + * Some SMTP servers use this error code to refuse spam, however + * as we don't want to delete message if e.g. the address is (possibly + * by mistake) malformed, user has to use the 'antispam' option to + * treat this as spam symptom + */ + free(responses[0]); + if (outlevel > O_SILENT) + report_complete(stdout, + GT_(" SMTP 501 error - if the server uses this code to report spam, include '501' in the 'antispam' option .\n")); + return(PS_TRANSIENT); + + default: /* bounce non-transient errors back to the sender */ if (smtperr >= 500 && smtperr <= 599) {