Penguin

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