procmail config help

doug doug at fledge.watson.org
Thu Nov 18 05:44:56 UTC 2010


On Wed, 17 Nov 2010, AN wrote:

> I am trying to configure sendmail with spamassassin to move mail marked as 
> spam to a spam folder in the users home directory.  I have the following
> installed:
>
> p5-Mail-SpamAssassin-3.3.1 A highly efficient mail filter for identifying 
> spam
> razor-agents-2.84   A distributed, collaborative, spam detection and 
> filtering
> spamass-milter-0.3.1_10 Sendmail Milter (mail filter) plugin for SpamAssassin
> p5-Mail-DKIM-0.38   Perl5 module to process and/or create DKIM email
> procmail-3.22_6     A local mail delivery agent
>
> I would like to setup this configuration for each individual instead of 
> system wide.  I have the following procmail file in the user home directory:
>
> #Uncomment the following lines and use tail -f procmail.log to debug
> LOGFILE=/home/andy/procmail.log
> VERBOSE=yes
> LOGABSTRACT=all
>
> # Feed redirected spam to sa-learn, and also store a copy in a folder called 
> spam.
> # This folder of false negatives could be useful if we needed to rebuild our 
> Bayes
> # database in the future.
>
> :0
> * ^To:.*spam at example.com
>
>   {
>   * < 256000
>   :0c: spamassassin.spamlock
>   | sa-learn --spam
>
>   :0: spamassassin.filelock
>   spam
>   }
>
> # Send all other mail through SpamAssassin
>
> :0fw: spamassassin.lock
> * < 256000
> | spamassassin
>
>
> :0: spamassassin.filelock2
> * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
> #/dev/null
> /home/andy/Mail/spam
>
> Spam messages are still being delivered to the user inbox.
>
> I tried to setup logging with the following:
>
> LOGFILE=/home/andy/procmail.log
> VERBOSE=yes
> LOGABSTRACT=all
>
> When I tried to send a test spam message nothing is written to the log file.
> How can I get logging to work to try to debug the problem?
>
> If anyone has a working procmail config file to share that would be 
> appreciated.
>
> Any help debugging this would be greatly appreciated.
>
> TIA

Do you have a shell statement in your procmailrc file? Anyway here is an example 
of what we use. It is a combination of bogofilter and spamassassin. If this does 
not help, make things simple, start with some of the examples in man procmailex.

SHELL=/bin/sh
# Directory for storing procmail configuration and log files
COMSAT=no
PATH=/bin:/usr/bin:/usr/local/bin/
FGREP=/usr/bin/fgrep
FROM=`formail -x From:`
MAILDIR=$HOME
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/`date +%Y%m`.log
DEFAULT=$HOME/mbox
##LOGABSTRACT=all
VERBOSE=no
SPAMDIR=spam`date +%m%y`

## whitelist
:0
  * ? (echo "$FROM" | $FGREP -iqf $PMDIR/whitelist)
  ${DEFAULT}

## filter mail through bogofilter, tagging it as spam and
## updating the word lists
:0fw
| bogofilter -e -p

# if bogofilter failed, return the mail to the queue, the MTA will
# retry to deliver it later
# 75 is the value for EX_TEMPFAIL in /usr/include/sysexits.h
:0e
{ EXITCODE=75 HOST }

# if bogofilter thinks it is spam, that's enough..
:0
* ^X-Bogosity: Yes
{
    LOG="bogofilter"
    :0
    $SPAMDIR
}

# run spam assassin on it!
:0fw: spamassassin.lock
| spamassassin -L

# if spam assassin thinks it is spam but bogofilter doesn't,
# give preference to spam assassin and retrain BF
:0
* ^X-Spam-Status: Yes
* ^X-Bogosity: No
{
   # Retrain bogofilter
   :0c
   | bogofilter -Ns

   LOG="spamassassin"
   :0
   $SPAMDIR
}

I edited this a bit to remove user specific information, so I may have 
introduced an error. This file will [should??] log if you make the appropriate 
changes.


More information about the freebsd-questions mailing list