I use fetchmail to retrieve email from an IMAP server every five minutes, passing it to a local postfix process for delivery. The problem: sometimes an email has an invalid "From" line (usually spam), like this one with a leading hyphen:
From: "- Some Dumb Spammer" <-DumbSpammer@example.com>
In this case, fetchmail retrieves the email and passes it to my local postfix process, which raises an error:
fetchmail: SMTP error: 501 5.1.7 Bad sender address syntax
This error causes fetchmail to leave the bad email sitting on the IMAP server, even when my .fetchmailrc file says nokeep
. As a result, fetchmail re-downloads it every five minutes. Repeat forever... or until I manually delete the bad email from the IMAP server.
What's the best way to break these loops automatically, either deleting or delivering the bad email, without opening a security hole (e.g., permitting leading hyphens)? Thank you.