ver. 2.8: Added at, after, during, nop, dnsbl commands. Tightened code to be
a bit nicer to PERL 5.
ver. 2.7: Experimental "-U (user)" command. This will obviously only work if you're running as root (short of serious security holes in your system). Added the "ip" variable and resolving the IP address of of the sender's hostname. Added "quote" and "mailresult".
ver. 2.6: More bugfixes, adding or removing from lists shouldn't abort
the entire program if there's a problem. Canned should be
fixed, I accidentally trashed it when I was neatening up from
2.4. How embarassing! ZFilter practices safe file-locking
via it's own method & flock(2). Zfilter tries to figure out
if you can use flock(2) during config mode and warns the user
if it doesn't look like your system supports it.
ZFilter has signal handling, (most notably, it tries to save the letter in memory to disk before dying). ZFilter is better about failed attempts to lock files or save mail. If it can't save the message to the mail folder, inbox or a "dead letter" file in the user's home directory, it sends panic email to the appropriate postmasters, the sender and the user (it will keep re-queueing the error message until it eventually gets through or someone explicity deletes the error message from the sendmail incoming mail queue). Fixed the bug in "unique" that flagged messages with no content. Added the "empty" variable so you can delete them explicitly if you want to.
There is an explicit "Ignore" argument for the command line. For what it's worth, you can now use a single "-" to prefix multiple arguments to zfilter that don't need any additional information. Like, you can now say "zfilter -sr" on the command line because neither option "s" nor option "r" need to know anything else.
ver. 2.5: The "Bugfix" version. :) But there's new stuff too.
Fix for "addlist" and "remlist" when used internally.
Improved Xlate a bit to take "/"s between vars.
A bit more paranoid about "xcontent" and programs that might not return what we're hoping for. The command parser now accepts multiple-word arguments (if they're quoted).
Fix for file permission problems. Fixed potential problem to "canned" and "mail" which might have started "filter fights". ZFilter now uses "sendmail" instead of "mail" for actual delivery of outbound mail. Tightened up internal code for better
efficiency and easier readability. ZFilter now logs when it won't respond to a message that's come from another filter. Zfilter won't let you process a rules file that's already being processed.
Added "do" and "require" to help people load their own modules. Added "comment", "unique" command and variable. Added some cool new abilities to form letters. You can now interpolate variables as commands or command arguments. Added the "page" command.
ver. 2.4: Reorganized several of ZFilter's commands and functions
for better readability. Minor bugfixes, mostly some
applications of "post". Revision to some parts of this README to make them more understandable.
ver. 2.3: Added xheader, xcontent, xmessage, resync, umask and mode
Bugfixes for all the 2.2 commands.
ver. 2.2: Added bounce, xlate, addheader, remheader, setheader, take
keepheader, post, process, saveover and "bounce" as a separate
ver. 2.1: ZFilter no longer cares whether "filter" is in the subject
line of forwarded or canned messages. It now plays with the
message headers to identify the message as having been filtered.
It still doesn't respond to messages with the word "filter" in
the subject line for backward-compatibility and common sense.
Bugfix to saving mail to a folder that should _hopefully_ clear
up any wierd problems with "phantom mail" that messes with the
minds of "You have new mail" alarms. You might have either
gotten "You have new mail" messages when you didn't, or not
gotten any messages when you did.
ver. 2.0: Added minor listserv functions. ZFilter can now add and
delete email addresses from lists, both "on-the-fly" in a
rules file and from the command line. Also supports displaying
lists from the command line and searching lists for a user.
Added -u for syntax help. Added -? -h -H and /? as synonyms
for -u just in case. Did I mention I'm paranoid?
ver. 1.9: Minor bugfix for log-clearing. Added "bounce" as a synonym
for "forward". Added the "name" command. ZFilter now sets
the status of all the messages it parses to "N" (so that if
you save to a folder, your messages still are flagged as being
ver. 1.8: Clear logs becomes "summarize and clear logs". Zfilter now
uses DBM files to summarize old logs before deleting them.
The end result uses about 1/3 the disk space of keeping large
logs around. Summaries are not affected if you tell Zfilter
to clear the logs any more since old summaries are stored.
Also added command-line options to completely reset the logs
and the summaries.
ver. 1.6: Scrapped the old expression parser and did a new one.
It's tighter, won't allow "or" and "and" instead of (| and &)
BUT it will take sub-expressions in parentheses, and it fixed
one or two bugs in the old one dealing with "never" and "always"
(so embarrasing too... they were supposed to be easy!)
And it's marginally more idiot-proof. BIG CHANGE; The parser allows you to compare variables like this; "if ( a > b ) ..." which can be nice, BUT it also means that when you do a
regex search ( like when you use ? or # in an "if" statement) you MUST put quotes around text you want to find if it isn't
|if( a ? b ) ...||Searches to see if the contents of variable|
"b" appear in variable "a".
|if( a ? "b" ) ...||Searches to see if the letter "b" appears|
in the variable "a".