Differences between version 18 and revision by previous author of SpamAssassin.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 18 | Last edited on Monday, July 4, 2005 8:57:32 am | by DrewBroadley | Revert |
Older page: | version 15 | Last edited on Thursday, June 30, 2005 3:42:16 pm | by DanielLawson | Revert |
@@ -5,142 +5,8 @@
As of version 3.0, SpamAssassin supports [SURBL] natively.
-----
-!! How to make SpamAssassin run on your local e-mail machine (with
[Evolution
] in mind)
-
-* get and install SpamAssassin, test that it works by piping a good email and a spam email through it
-* check that fetchmail(1) works, write a <tt>.fetchmailrc</tt> file
-* check that procmail(1) works, write a <tt>.procmailrc</tt> file
-* disable the regular pop mailboxes in Evolution
-* add a new "local delivery" mailbox to Evolution
-* write a tiny script I called <tt>getmail</tt> that does <tt>fetchmail -m procmail</tt> and make sure that it gets your email from the POP3 server correctly
-* add <tt>getmail</tt> to your crontab to run every 5 minutes
-* add a filter rule to Evolution: if specific header <tt>X-Spam-Flag = YES</tt>, drop the email in my Spam folder
-
-<tt>.fetchmailrc</tt>::
- <verbatim>
- poll mail.myisp.co.nz protocol POP3
- user "pop3user" password "secret" is user "localuser" here mda "/usr/bin/procmail";
- </verbatim>
-
-<tt>.procmailrc</tt>::
- <verbatim>
- # correct incoming messages for programs like Evolution and mail
- :0 fhw
- | formail -I "From " -a "From "
-
- :0fw
- | spamassassin
- </verbatim>
-
-<tt>~/bin/getmail</tt>::
- <verbatim>
- #!/bin/bash
- /usr/bin/fetchmail >> ~/log/fetchmail
- </verbatim>
-
-crontab::
- <verbatim>
- */5 * * * * /home/localuser/bin/getmail
- </verbatim>
-
-----
-
-!! The ClamAV Plugin
-
-This plugin submits the entire email to a locally running [ClamAV] server for virus detection. If a virus is found, it returns a positive return code to indicate spam and sets the header <tt>X-Spam-Virus: Yes ($virusname)</tt>. If you'd like to sort virus emails to a separate folder, create a rule looking for this header.
-
-It requires
-* [ClamAV] installed so that scanning a mail with <tt>clamscan</tt> works
-* the [File::Scan::ClamAV | http://search.cpan.org/dist/File-Scan-ClamAV/] [Perl] module
-
-To install, create the files in <tt>/etc/mail/spamassassin/</tt>. You can adjust the default score of 10 in <tt>clamav.cf</tt> if you like. Restart the <tt>spamd</tt> daemon if you're using that, and you should be all set.
-
-<tt>clamav.cf</tt>::
- <verbatim>
- loadplugin ClamAV clamav.pm
- full CLAMAV eval:check_clamav()
- describe CLAMAV Clam AntiVirus detected a virus
- score CLAMAV 10
- </verbatim>
-
-<tt>clamav.pm</tt>::
- <verbatim>
- package ClamAV;
- use strict;
- use warnings;
-
- use Mail::SpamAssassin;
- use Mail::SpamAssassin::Plugin;
- use File::Scan::ClamAV;
-
- our @ISA = qw(Mail::SpamAssassin::Plugin);
-
- sub new {
- my ( $class, $mailsa ) = @_;
- my $self = $class->SUPER::new( $mailsa );
- bless( $self, $class );
- $self->register_eval_rule( "check_clamav" );
- return $self;
- }
-
- sub _set_header {
- my ( $msgstatus, $header ) = @_;
- $msgstatus->{ main }->{ conf }->{ $_ }->{ "Virus" } = $header
- for qw( headers_spam headers_ham );
- }
-
- sub check_clamav {
- my ( $self, $permsgstatus, $fulltext ) = @_;
- my $clamav = File::Scan::ClamAV->new( port => 3310 );
- my ( $code, $virus ) = $clamav->streamscan( ${ $fulltext } );
- if ( !$code ) {
- my $errstr = $clamav->errstr();
- Mail::SpamAssassin::Plugin::dbg( "ClamAV: Error scanning: $errstr" );
- _set_header( $permsgstatus, "Error ($errstr)" );
- }
- elsif ( $code eq 'OK' ) {
- Mail::SpamAssassin::Plugin::dbg( "ClamAV: No virus detected" );
- _set_header( $permsgstatus, "No" );
- }
- elsif ( $code eq 'FOUND' ) {
- Mail::SpamAssassin::Plugin::dbg( "ClamAV: Detected virus: $virus" );
- _set_header( $permsgstatus, "Yes ($virus)" );
- return 1;
- }
- else {
- Mail::SpamAssassin::Plugin::dbg( "ClamAV: Error, unknown return code: $code" );
- _set_header( $permsgstatus, "Error (Unknown return code from ClamAV: $code)" );
- }
- return;
- }
- 1;
- </verbatim>
-
-GreigMcGill has found that MaiaMailguard is an excellent meta tool for managing your anti spam solution.
-
------
-!!Inappropriate ioctl for device in your debug logs under Sarge/Hoary
-
-<verbatim>
-debug: using "/root/.spamassassin" for user state dir
-debug: lock: 29656 created /root/.spamassassin/auto-whitelist.lock.firewall.itpartners.co.nz.29656
-debug: lock: 29656 trying to get lock on /root/.spamassassin/auto-whitelist with 0 retries
-debug: lock: 29656 link to /root/.spamassassin/auto-whitelist.lock: link ok
-debug: Tie-ing to DB file R/W in /root/.spamassassin/auto-whitelist
-debug: unlock: 29656 unlink /root/.spamassassin/auto-whitelist.lock
-debug: open of AWL file failed: Cannot open auto_whitelist_path /root/.spamassassin/auto-whitelist: Inappropriate ioctl for device
-</verbatim>
-
-You're using old format database files.
-
-The perl version change effected a change of the BDB version being used. The bayes_seen and bayes_toks fixes are BDB files and
-can be fixed by doing an db4.x_upgrade on them. sarge/hoary use Berkely DB 4.2, and you can install the db4.2-util package. with HTML
-
-----
-!! I'm running spamassassin from my MTA, and I get the error <tt>spam acl condition: cannot parse spamd output</tt> or similar.
-
-This occurs if you have upgraded perl, and not restarted spamd. Try restarting spamd and see if it solves the problem. It could also be a version mismatch, in which case you'll have to upgrade whichever process is calling spamassassin
+See
[SpamAssassinNotes
]
----
CategoryAntiSpam