Another Procmail configuration.

Sam sam at kanji.com.au
Wed Jan 24 18:23:01 EST 2007


Hi,

I am having problem with setting up procmail to work with a C program I 
wrote. The C program is to determine whether the domain part of the 
incoming email is a forwarded email, if it is, procmail will not filter 
its spam into local cyrus mail box. I m not really sure the syntax I use 
in this conf file is correct or not.

Your suggestion is much appreciated.

Here is the promailrc script:

SHELL=/bin/sh
DROPPRIVS=yes
LINEBUF=32768
SENDMAILFLAGS="-oi"
LOGFILE="/var/log/spamkill/spamkill.log"
SPAMC="/usr/local/bin/spamc"

FROM="<$1>"
TO=$2
SHIFT=1


:0f
|$SPAMC -f -U /var/run/spamd.sock

:0
* ^X-Spam-Level: \*\*\*\*\*
{
USER=`echo $TO | cut -d "@" -f1`
DOMAIN=`echo $TO | cut -d "@" -f2`

# Debug statement. Comment out these Debug log lines later.
#LOG="[$$]$_: Debug: TO=$TO${NL}\n"
#LOG="[$$]$_: Debug: USER=$USER${NL}\n"
#LOG="[$$]$_: Debug: DOMAIN=$DOMAIN${NL}\n"

# Execute CYRUSUSER's personal rules
#INCLUDERC=/var/imap/procmail/user/procmail.$CYRUSUSER

# All the mail that falls through to this point will be delivered into 
the user's Spam,
# INBOX folder or forwarded to external smtp server.
   :0 wi
   {

        IS_FWD=`/usr/local/sbin/alias2user $DOMAIN`
        LOG="[$$]$_: Debug: IS_FWD=$IS_FWD${NL}\n"
        # theres an error when determng whether thiss a forwarded domain
        * !IS_FWD ?? "-1"
        {
                |  /usr/local/cyrus/bin/deliver -r 
admin at mymaildomian.com.au admin/Inbox
                # not a forwarded domain
                :0
                * IS_FWD ?? "0"
                {
                        |  /usr/local/cyrus/bin/deliver -r $USER@$DOMAIN 
$USER/Spam
                }

                # Else Delivery failed. So we need to handle the error 
condition.
                :0 e
                {
                # Get the return code from the last program that ran and 
report it in the logfile.
                ERRORCODE=$?
                LOG="[$$]$_: XX-Failed delivery ERRORCODE=${ERRORCODE} 
${NL}"
                }
        }
    }
}

:0
! -f $FROM "$@"

When this rc get triggered by an arriving email, its log shown the 
following error:

procmail: Extraneous ignore-write-error flag ignored
procmail: Skipped "* !IS_FWD ?? "-1""
procmail: Skipped "{"
procmail: Skipped "|  /usr/local/cyrus/bin/deliver -r 
admin at mymaildomain.com.au admin/Inbox"
procmail: Skipped "|  /usr/local/cyrus/bin/deliver -r $USER@$DOMAIN 
$USER/Spam"
procmail: Closing brace unexpected
 Subject: testing
  Folder: /usr/sbin/sendmail -oi -f <sam at mymaildomain.com.au>     1244

Thanks
S


More information about the Info-cyrus mailing list