Another procmail configuration

Discussion in 'Perl' started by Pet Farrari, Jan 24, 2007.

  1. Pet Farrari

    Pet Farrari Guest

    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/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/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 <>
    1244

    Thanks
    S
    Pet Farrari, Jan 24, 2007
    #1
    1. Advertising

  2. Pet Farrari wrote:
    > 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.


    You are missing
    use strict;
    use warnings;
    They help you find a lot of errors.

    > SHELL=/bin/sh


    Standard convention is to use upper case variable names for file handles
    only.
    The correct syntax would be

    my $shell = '/bin/sh';

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


    Same for those declarations above

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


    Ouch! What is that supposed to do?

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

    >
    >> 0

    > * ^X-Spam-Level: \*\*\*\*\*


    I'm giving up. Too many errors.

    jue
    Jürgen Exner, Jan 24, 2007
    #2
    1. Advertising

  3. Pet Farrari

    Joe Smith Guest

    Pet Farrari wrote:

    > I am having problem with setting up procmail to work ...
    >
    > Here is the promailrc script:


    I hope you realize that you posted this to a Perl newsgroup.
    The script you posted was not written in Perl.

    If you are having problems with procmail, you should post to a procmail newsgroup.
    Joe Smith, Jan 27, 2007
    #3
  4. >>>>> "Joe" == Joe Smith <> writes:

    Joe> Pet Farrari wrote:
    >> I am having problem with setting up procmail to work ...
    >> Here is the promailrc script:


    Joe> I hope you realize that you posted this to a Perl newsgroup.

    And not even a valid Perl newsgroup. This group has been officially
    dead since 1995 or so.

    --
    Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
    <> <URL:http://www.stonehenge.com/merlyn/>
    Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
    See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

    --
    Posted via a free Usenet account from http://www.teranews.com
    Randal L. Schwartz, Jan 28, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    1
    Views:
    1,838
    Jim Gibson
    Nov 15, 2006
  2. Mislav Kasner

    Procmail to ruby

    Mislav Kasner, Nov 5, 2007, in forum: Ruby
    Replies:
    3
    Views:
    190
    Jonathan Hudson
    Nov 6, 2007
  3. J Cardella
    Replies:
    3
    Views:
    180
    Johan Vromans
    Sep 28, 2004
  4. Pet Farrari

    Another procmail configuration

    Pet Farrari, Jan 24, 2007, in forum: Perl Misc
    Replies:
    4
    Views:
    114
    Dr.Ruud
    Jan 25, 2007
  5. Horst Lemminger
    Replies:
    1
    Views:
    430
    Dr Eberhard Lisse
    Dec 20, 2011
Loading...

Share This Page