Tom Leach <leach(_at_)oce(_dot_)orst(_dot_)edu> writes:
Hello, not sure if this is a procmail problem or a sendmail one, but I'm
trying to set up a sendmail.cf file on a department mail server
that will have a rule that calls procmail to run a filter in in/out bound
mail. I'm generally trying to reduce SPAM by looking at the subject lines
and if they match the filter, toss the message into a file for scanning
later.
I guess I'm checking to see if setting up a rule is a good approach. I'd
rather not replace the local mailer with procmail (that just sounds like
to major of an operation), but I didn't know if I was on the right track
or not...
Replacing the local mailer is conceptually simpler than what you're doing.
Here's what I've tried so far:
This setup seems to work on a test system, but I wanted some assurances
before dropping it on the main mail server...
Solaris 2.6, sendmail 8.9.3, procmail 3.14
in sendmail.cf, first line of rule 0:
R$* $: $>99 $1 do procmail checks
in sendmail.cf, created rule 99:
###################################################################
### Ruleset 99 -- procmail part of ruleset zero (can be null) ###
###################################################################
S99
R$*.procmail$* $@ $1$2 # procmail has already looked at this.
R$*<@$+>$* $#procmail $@/etc/mail/procmail.rc $:$1(_at_)$2procmail
The user specification is incorrect on the second rule: you're missing
the brackets, the period before "procmail", and $3 (without $3 all route
addresses would be completely hosed). I would also suggest being more
explicit in what you're expecting to match with the first rule:
S99
R$*<@$+.procmail>$* $@ $1<@$2>$3 # procmail has already looked at this.
R$*<@$+>$* $#procmail $@/etc/mail/procmail.rc $:$1<@$2.procmail>$3
That should make it more clear what is going on.
...
In /etc/mail/procmail.rc:
:0
* ^Subject: Make Money Fast
/var/log/SPAM
:0
! -oi -f "$@"
When you save the message to /var/log/SPAM you're losing the envelope
address info. You should save it in a header:
SENDER = $1
RECIPT = $2
:0:
* ^Subject: Make Money Fast
|formail -I"X-Envelope-Addressing: $SENDER $RECIPT" >>/var/log/SPAM
and no, you can't just place $* or $@ in the quotes, because the above
will be executed by the shell. $@ wouldn't be correct anyway (it would
create more arugments for formail) and procmail doesn't expand $*.
Philip Guenther