procmail
[Top] [All Lists]

Re: Need help from the procmail rule gods. (simplified)

2002-11-21 13:31:41
On 22 Nov, Robert Nicholson wrote:
| I thought I'd take a stab at simplifying my question.
| 
| Given the following rule
| 
| > :0 Wf:$HOME/filtmail.lock
| > | $HOME/.filtmail/filtmail
| 
| How can I then specify more than one dependent rule using either "e" or 
| "a" flags on this rule?
| 
| so I want two rules ie. one for each logical user that are only 
| executed if the above filter
| was successfully executed. If the above filter exits with status of 1 
| then the mail should
| be delivered and processing can stop. If it exits with status of 0 then 
| the mail should
| go into spam assassin.
| 
| The problem is that the filter applies to two users. robert and ann. so 
| I cannot just put
| 
| > #anns mail
| > :0e:$HOME/$LOGNAME.lock
| > * ^TOann(_at_)elastica(_dot_)com
| > $ANNDEFAULT
| 
| because I also need
| 
| > #anns mail
| > :0e:$HOME/$LOGNAME.lock
| > * ^TOrobert(_at_)elastica(_dot_)com
| > $DEFAULT
| 
| and if it's exited with 0 then spam assassin can be called up on to 
| filter the email.
| 
| My problem is that I don't know how to tie this second rule to the exit 
| status of the filter.
| 
| > :0fw
| > * < 25600
| > * !^Subject:.*4321
| > | $SPAMASSASSIN
| 
| after that I don't mind doing something like
| 
| > :0:
| > * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
| > * ^TOann(_at_)elastica(_dot_)com
| > $ANNSMAILDIR/copy
| >
| > :0:
| > * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
| > $MAILDIR/copy
| >
| > :0:
| > * ^TOann(_at_)elastica(_dot_)com
| > * ^X-Spam-Status: Yes
| > $ANNSMAILDIR/copy
| >
| > :0:
| > * ^X-Spam-Status: Yes
| > $MAILDIR/copy
| 
| Now I can get around my "dependent" problem because I know the filter 
| will add a X-Challenge-Reason header to any mail that is spam. So I can 
| add that condition to the rules. But must I do this or is there a way 
| to specify multiple rules that are dependent the _same_ rule?
| 
| [...]

I'm not sure if that was simpler, or not. ;-)  I don't completely
understand everything that's going on here, but it sounds like you want
something like:

  :0 Wf:$HOME/filtmail.lock
  | $HOME/.filtmail/filtmail

  :0e
  {
    # messages that did not return 0 from filtmail processed here
    :0:$HOME/$LOGNAME.lock
    * ^TOann(_at_)elastica(_dot_)com
    $ANNDEFAULT

    :0:$HOME/$LOGNAME.lock
    * ^TOrobert(_at_)elastica(_dot_)com
    $DEFAULT
  }

  # Messages that get to here either returned 0 from filtmail
  # or do not match ^TO(ann|robert)@elastica.com.
  # So I guess this is where the spamassassin stuff goes.


-- 
Reply to list please, or append "8" to "procmail" in address if you must.
Spammers' unrelenting address harvesting forces me to this...reluctantly.



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