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

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

Properties

Name Value
svn:executable *
svn:keywords Id