Aloha Beau,

nice piece of work. Nevertheless I have 1 small improvement:

Some users of Don's original script have experienced unscanned spam =
passing
thru, when the machine is extremely busy. I tracked down this issue. =
spamc
retries to connect spamd only 3 times and quits then with a Filter Error =
-5.
YOu can track this in the system logs and in XMail's logs as well.

The workaround is simple:
If spamc's output does not contain the SA x-header, it will be submitted
again after a certain delay. The delay is increasing with each retry, =
which
will give spamd more time to recover.

I also replaced the backticked call with IPC:Open2, which has less =
overhead.
Here is the modified part, which you can adapt for your script:

#-----------------------------------------------------------------
# MOD.start
#-----------------------------------------------------------------
# pass rest to spamc
#MOD my $checkedEmail=3D`spamc -f < $tmpFile`;

my $delay =3D 0;
my $checkedEmail;=09
do {
        $checkedEmail =3D '';
        print "*** spamc delayed: $delay sec.\n" if ($delay > 0) && ($DEBUG
=3D=3D 1);
        sleep($delay);
        open2(*SPAMC_R,*SPAMC_W,'spamc -f');
        print SPAMC_W $tmpFile;
        close(SPAMC_W);

        my $bak =3D $/;
        undef $/;
        $checkedEmail =3D <SPAMC_R>;
        close(SPAMC_R);
        $/ =3D $bak;
        $delay =3D $delay+5;
} while($checkedEmail !~ /X-Spam-Flag/gms );

#-----------------------------------------------------------------
# MOD.end
#-----------------------------------------------------------------

Further ideas are welcome ...

All the best,
Harald


> -----Urspr=FCngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag von Beau E. Cox
> Gesendet: Mittwoch, 26. Mai 2004 19:47
> An: [EMAIL PROTECTED]
> Cc: Dale Qualls
> Betreff: [xmail] [ANNOUNCE] bsa_filter.pl
>=20
>=20
> I am pleased to announce the first public release of
> 'bsa_filter.pl' - a SpamAssassin xmail filter written in perl.
> The script is a modification/upgrade of Don Drake's sa_filter.pl.
>=20
> Please be aware that this script is 'beta' and it should be carefully
> tested before being thrown into production.
>=20
> The script and documentation may be found at:
>=20
>   http://xmail.beaucox.com
>=20
> Davide - can you put a link on your site pointing to my site with a
> description of something like:
>=20
>   <a href=3D"http://xmail.beaucox.com/";>bsa_filter.pl</a> - a=20
> perl SpamAssassin
>   filter with configurable spam message forwarding and/or trashing.
>=20
> A snippet of the documentation:
>=20
> NAME
>     bsa_filter.pl - an xmail SpamAssassin filter.
>=20
> DESCRIPTION
>     bsa_filter.pl is an xmail mail server filter to process incoming
>     messages through SpamAssassin. It is based on Don=20
> Drakes's script -
>     sa_filter.pl, version 1.3. The following enhancements to=20
> his work were
>     made:
>=20
>     Rewritten using perl oo package/class
>         This was mainly done to make intra-module=20
> communication easier.
>=20
>     Configurable forwarding
>         Spam messages may be forwarded to an administrative=20
> email account
>         for review/blacklisting/whitelisting/etc. based on a=20
> settable spam
>         score threshold.
>=20
>     Configurable trashing
>         Spam messages above a settable spam score may be=20
> summarily trashed.
>=20
>     Enhanced log
>         The spam log has been enhanced: additional fields=20
> have been added.
>=20
> PREREQUSITES
>     The follwing modules should be installed:
>=20
>     xmail
>         A running xmail mail server. See the "CONFIGURATION"=20
> section below
>         for changes that must be made to filter exit codes for older
>         versions.
>=20
>     Mail::SpamAssassin
>         I have tested only with version 2.63; the filter=20
> should/may work
>         with earlier versions that do not have major=20
> operational changes.
>=20
>     Net::SMTP
>         Found in perl module libnet; I use libnet 1.18.
>=20
> CONFIGURATION
> ....
>=20
> Aloha =3D> Beau;
>=20
> -
> To unsubscribe from this list: send the line "unsubscribe xmail" in
> the body of a message to [EMAIL PROTECTED]
> For general help: send the line "help" in the body of a message to
> [EMAIL PROTECTED]
>=20

-
To unsubscribe from this list: send the line "unsubscribe xmail" in
the body of a message to [EMAIL PROTECTED]
For general help: send the line "help" in the body of a message to
[EMAIL PROTECTED]

Reply via email to