Guest User

Untitled

a guest
Dec 5th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2.  
  3.  
  4. use strict;
  5. use Mail::IMAPClient;
  6. use Mail::SpamAssassin 3.0000;
  7.  
  8. my $debug = 0
  9.  
  10. my $imapserver="imapserver";
  11. my $username="username";
  12. my $password="password";
  13.  
  14. # Change these to something sane for your setup
  15. my $spaminfolder = "INBOX";
  16.  
  17. my $imap = Mail::IMAPClient->new(
  18. Server => $imapserver,
  19. User => $username,
  20. Password => $password,
  21. #Authmechanism => 'CRAM-MD5',
  22. Port => "143"
  23. )
  24. || die ("Could not connect to server: $! $?\n");
  25.  
  26. $imap->expunge;
  27.  
  28. my $spamass = Mail::SpamAssassin->new( { 'debug' => $debug } );
  29. $spamass->init(1);
  30.  
  31. my $message_count = $imap->message_count($spaminfolder) || 0;
  32.  
  33. $imap->select($spaminfolder);
  34.  
  35. my @msgs = $imap->search("ALL");
  36.  
  37. my $learncount = 0;
  38. my $count = 0;
  39.  
  40. foreach my $m (@msgs) {
  41. my $raw_message = $imap->message_string($m);
  42. $raw_message =~ s/\r\n/\n/g;
  43. my $mail = $spamass->parse($raw_message);
  44. $count++;
  45.  
  46. my $status = $spamass->learn($mail, undef, 1);
  47.  
  48. if ($status->did_learn() == 1){ $learncount++; }
  49. }
  50.  
  51. print "Processed $count messages\n";
  52. print "Learned: $learncount\n";
Add Comment
Please, Sign In to add comment