ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/Mail/FalsePositive.pl
Revision: 925
Committed: 2007-05-31T03:34:26-07:00 (18 years, 1 month ago) by douglas
Content type: text/x-perl
File size: 1236 byte(s)
Log Message:
Rot13 and Base64.

File Contents

# User Rev Content
1 douglas 811 #!/usr/bin/perl
2     # False Positive
3     #
4     # Douglas Thrift
5     #
6     # $Id$
7    
8     use strict;
9     use warnings;
10    
11 douglas 924 use IMAP::Client;
12 douglas 811 use Mail::SpamAssassin;
13 douglas 925 use MIME::Base64;
14 douglas 811
15 douglas 829 my $debug = 0;
16 douglas 811
17 douglas 829 for my $arg (@ARGV)
18 douglas 811 {
19 douglas 829 if ($arg eq "-debug")
20     {
21     $debug = 1;
22     }
23     else
24     {
25     print "Usage: $0 [-debug]\n";
26    
27     exit 1;
28     }
29 douglas 811 }
30    
31 douglas 924 my $imap = new IMAP::Client;
32 douglas 811
33 douglas 924 $imap->onfail('ABORT');
34     $imap->debuglevel(1) if ($debug);
35     $imap->capability_checking(1);
36     $imap->connect(PeerAddr => 'mail.douglasthrift.net', ConnectMethod => 'STARTTLS');
37 douglas 829
38 douglas 912 {
39     my $user = getpwuid $<;
40    
41 douglas 925 open PASS, "$ENV{HOME}/.SpamUpdate.pass" or die "$0: $!\n";
42 douglas 912
43     my $pass = <PASS>;
44    
45     chomp $pass;
46     close PASS;
47    
48 douglas 925 $pass =~ tr/A-Za-z/N-ZA-Mn-za-m/;
49    
50     $imap->authenticate($user, decode_base64($pass));
51 douglas 912 }
52    
53 douglas 924 $imap->select('Spam.False Positive');
54    
55     my $messages = $imap->uidsearch('UNFLAGGED');
56    
57     if (defined $messages)
58 douglas 829 {
59 douglas 924 my $assassin = Mail::SpamAssassin->new($debug ? {debug => 'all'} : {});
60     my %fetch = $imap->uidfetch($messages, {}, 'INTERNALDATE');
61 douglas 829
62 douglas 924 for my $message (values %fetch)
63 douglas 829 {
64 douglas 924 $imap->append('INBOX', $assassin->remove_spamassassin_markup($assassin->parse($message->{BODY}->{BODY})), '"' . $message->{INTERNALDATE} . '"');
65     $imap->uidstore($message->{UID}, '+FLAGS.SILENT', '\Flagged');
66 douglas 829 }
67     }
68    
69 douglas 924 $imap->logout;

Properties

Name Value
svn:executable *
svn:keywords Id