ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/Mail/FalsePositive.pl
Revision: 924
Committed: 2007-05-30T22:32:06-07:00 (18 years, 1 month ago) by douglas
Content type: text/x-perl
File size: 1175 byte(s)
Log Message:
All perl, no c-client.

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    
14 douglas 829 my $debug = 0;
15 douglas 811
16 douglas 829 for my $arg (@ARGV)
17 douglas 811 {
18 douglas 829 if ($arg eq "-debug")
19     {
20     $debug = 1;
21     }
22     else
23     {
24     print "Usage: $0 [-debug]\n";
25    
26     exit 1;
27     }
28 douglas 811 }
29    
30 douglas 924 my $imap = new IMAP::Client;
31 douglas 811
32 douglas 924 $imap->onfail('ABORT');
33     $imap->debuglevel(1) if ($debug);
34     $imap->capability_checking(1);
35     $imap->connect(PeerAddr => 'mail.douglasthrift.net', ConnectMethod => 'STARTTLS');
36 douglas 829
37 douglas 912 {
38     my $user = getpwuid $<;
39    
40     open PASS, "$ENV{HOME}/.CreditCardReminder.pass" or die "$0: $!\n";
41    
42     my $pass = <PASS>;
43    
44     chomp $pass;
45     close PASS;
46    
47 douglas 924 $imap->authenticate($user, $pass);
48 douglas 912 }
49    
50 douglas 924 $imap->select('Spam.False Positive');
51    
52     my $messages = $imap->uidsearch('UNFLAGGED');
53    
54     if (defined $messages)
55 douglas 829 {
56 douglas 924 my $assassin = Mail::SpamAssassin->new($debug ? {debug => 'all'} : {});
57     my %fetch = $imap->uidfetch($messages, {}, 'INTERNALDATE');
58 douglas 829
59 douglas 924 for my $message (values %fetch)
60 douglas 829 {
61 douglas 924 $imap->append('INBOX', $assassin->remove_spamassassin_markup($assassin->parse($message->{BODY}->{BODY})), '"' . $message->{INTERNALDATE} . '"');
62     $imap->uidstore($message->{UID}, '+FLAGS.SILENT', '\Flagged');
63 douglas 829 }
64     }
65    
66 douglas 924 $imap->logout;

Properties

Name Value
svn:executable *
svn:keywords Id