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