ZFilter is an e-mail filtering program. Like a real filter (say, for coffee), ZFilter can strain out some unwanted or unpleasant e-mail, or working in reverse, can allow you to only receive mail from certain other people.
If that was all it did, it wouldn't be especially unique, or anything for me to really brag about. Fortunately it isn't. ZFilter is capable of taking a wide range of actions to a much wider range of situations. ZFilter can run other programs, send form responses, forward mail to other people and maintain a variable set and counters that let you easily keep track of how much mail you have received, and from whom. ZFilter can print summaries, showing you how often each action you told it to take was used and how much mail you have received from each e-mail address. It can even detect chain letters in a lot of cases (about 95% of the time) and let you delete them automatically, or send a prepared nasty-gram back to whoever sent it to you.
ZFilter is designed to make the old "/bin/filter" that comes with ELM obsolete. It (hopefully) provides a superset of the commands available to the old filter, and is more flexible and versatile in different situations.
ZFilter can be found wherever your favorite archives of
comp.sources.unix are stored. It is occasionally posted to
comp.lang.perl.misc (about once every two versions or so).
It is available on CPAN in the directory /authors/Steve_Zeck (for a random site, go to http://www.perl.com/CPAN/authors/Steve_Zeck )
It is also on my home page at http://www.guam.net/home/viper/files.html and is (as a last resort) available uuencoded via eMail if you send a message to email@example.com with the words "send zfilter" in the subject line of the message.
Support from the author can be obtained by e-mailing
Ideas and suggestions are always welcome.
Flames are welcome, just put the word "FLAME" in the subject line. :)
1.1 Why should I use it?
Do you get junk mail? Is someone harrasing you and you don't want their mail? Want saved copies of mail from certain people? Want all your mail forwarded to another site, and a message sent to people who use your old address to use the new one? Wish you could auto-acknowledge mail from people who worry too much? Have any use for a primitive Listserver? Wanna look cool to all your computer-techie friends? Would you like to keep logs of who writes to you the most and how much mail you receive every day? Hate chain letters? Would you like to send personalized mail to groups of people who write to you and look sincere and understanding before you've even read it? Enjoy looking at other people's source code?
ZFilter is capable of responding to nearly any situation you might run into with mail, especially if you use external programs to cover wierd specific ones.
One copy of ZFilter can serve a system. All users may configure it differently for their needs. A restricted filter (rzfilter) is available for systems that would like to provide a filter to their users, but don't want users to be able to run other programs (through pipes). It is more secure and limits what people can do to get around your internal security if you're using rksh or other restricted-shell. It is available upon request from the author.
1.2. Who is this document intended for?
Although I wanted to include lots of technical information about ZFilter for the variety of UNIX-savvy dudes out there, I realized that one of the problems with the old filter and why it wasn't as widely used as it could have been was that the average user with shell access to an ISP couldn't figure out how to set it up or get it working from the man page or some of the other help files for it. This document _tries_ to explain both the technical stuff that experienced and froody UNIX dudes want to know, but it also tries really hard to make it so that inexperienced UNIX newbies can figure out how to get it going themselves. In doing so, I hope rather than be annoyed at having to wade through stuff they already know, the coolest of the cool Unix dudes will bear with me and skim to the things they _do_ want to know.
What should you read?
Newbies: Read _everything_. I'm not kidding. I'm not going to answer
any questions if the answer is plain-as-day in this doc. If
you don't understand something, it probably isn't important
Unix Hacks: Skim "variables" to see how ZFilter extracts variables from
message headers. Look at the extra variables ZFilter gets from
your environment and the "ones you shouldn't change".
You should be familiar with most of the operators, but I've
introduced "?" and "#" as regex pattern-matches. Go see the
end of the operators section and the Misc. section.
You'll want to read all the commands available, you may want to glance at the examples of commands to see ZFilter syntax in action. Other than that, you may want to skim the rest at your leisure. Zfilter should understand the old-style filter rules files, but you may find that some things you did with the old filter can be done with fewer lines or more efficiently with ZFilter's new commands and abilities.
People upgrading from an old ZFilter: Go to the very end of this message
and read the modification history to see what has been changed
from your version of ZFilter. Changes, new commands, etc.. should
be documented in the appropriate places.