Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use strict;
- use Mail::IMAPClient;
- use Mail::SpamAssassin 3.0000;
- my $debug = 0
- my $imapserver="imapserver";
- my $username="username";
- my $password="password";
- # Change these to something sane for your setup
- my $spaminfolder = "INBOX";
- my $imap = Mail::IMAPClient->new(
- Server => $imapserver,
- User => $username,
- Password => $password,
- #Authmechanism => 'CRAM-MD5',
- Port => "143"
- )
- || die ("Could not connect to server: $! $?\n");
- $imap->expunge;
- my $spamass = Mail::SpamAssassin->new( { 'debug' => $debug } );
- $spamass->init(1);
- my $message_count = $imap->message_count($spaminfolder) || 0;
- $imap->select($spaminfolder);
- my @msgs = $imap->search("ALL");
- my $learncount = 0;
- my $count = 0;
- foreach my $m (@msgs) {
- my $raw_message = $imap->message_string($m);
- $raw_message =~ s/\r\n/\n/g;
- my $mail = $spamass->parse($raw_message);
- $count++;
- my $status = $spamass->learn($mail, undef, 1);
- if ($status->did_learn() == 1){ $learncount++; }
- }
- print "Processed $count messages\n";
- print "Learned: $learncount\n";
Add Comment
Please, Sign In to add comment