Chapter 47. Filtering Mail
Simon Cozens
Let’s face it. procmail is horrid. But for most of us, it’s the only sensible way to handle mail filtering. I used to tolerate procmail, with its grotesque syntax and its less-than-helpful error messages, because it was the only way I knew to separate out my mail. One day, however, I decided that I’d been told “delivery failed, couldn’t get lock” or similar garbage for the very last time, and I sat down to write a procmail replacement.
That’s when it dawned on me that what I really disliked about procmail was the recipe format. I didn’t want to handle my mail with a collection of colons, zeroes, and single-letter commands that made sendmail.cf look like a Shakespearean sonnet; I wanted to program my mail routing in a nice, high-level language. Something like Perl, for instance.
The result is the astonishingly simple Mail::Audit module. In this article, I’ll examine what can be done with Mail::Audit and how to use it to create mail filters. I’ll also look at the News::Gateway module for turning mailing lists into newsgroups and back again.
What Is It?
Mail::Audit itself isn’t a mail filter—it’s a toolkit that makes it very easy for you to build mail filters. You write a program that describes what should happen to your mail, and this replaces your procmail command in your .forward or .qmail file.
Mail::Audit provides the functionality for extracting mail headers, bouncing, accepting, rejecting, forwarding, and filtering incoming mail.
A Very Simple ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access