procmail
[Top] [All Lists]

Re: new user: what am I doing wrong with this recipe?

2002-09-16 04:06:55
From: "Tony L. Svanstrom" <tony(_at_)svanstrom(_dot_)com>

Here's an example of a way to create ORs:

:0
* ^TO_.*foo@
* ^TO_.*bar@
* ^TO_.*foobar@
      {  }
      :0E:
              /dev/null


No, this is quite wrong.  It will delete all mail that doesn't
meet all three (ANDed) conditions.

By the way, your third example condition is redundant with
the second.

Also btw, you do not need or want ".*" with the ^TO_ token.
The expression it represents already contains that.  This
would only slow down procmail.

Third btw, you don't need a lockfile for /dev/null.


What you are forgetting in your algorithm is the logic
rule that says [ not-A AND not-B ] is equivalent to [ A OR B ].
Thus, the "Reverse DeMorgan" is properly done like so:


        :0
        * ! ^TO_foo
        * ! ^TO_bar
        { }  # do nothing

        :0 E # else . . .
        /dev/null


Acknowledgment and thanks to David Tamkin for turning me and many others
of us on to the Reverse DeMorgan years ago.

-- 
dman


_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail