- - - From "Sam man" - To - Date 01/02/2005 - Subject RIM_bca28a80-e9c0-11d1-87fe-00600811c6a2 - CC #### #CaptureMail Script use Net::POP3; use Mail::Header; # Configure Sever Login Info here # $postoffice='pop.mail.yahoo.com'; # fill in this with something like postoffice.isp.com $user=''; # fill this in with your mail user name $password=''; # fill this in with your mail server password $verbose=1; # Call scan_header with the Mail::Header object. If it returns a value, then # that value is the reason the mail should be Captured. # If it returns undef, the mail is not Captured; # # NOTE: Edit the Email addresses below to specify who's mail to Capture' sub scan_header { my $head, @rec, $r, @tags, $t, $msgsize; ($head, $msgsize) = @_; @tags = $head->tags(); $DefinedUser = 0; foreach $t (@tags) { if ($t=~/^X-Advertisement/i) { return "Found X-Advertisement header"; } if ($DefinedUser == 0) { if (($t=~/From/i) || ($t=~/To/i) || ($t=~/Cc/i)) { @rec = $head->get($t); foreach $r (@rec) { if ($r=~/extra\@ediets\.com/i) { return "Found User in $t header"; } if ($r=~/savetrees\.com/i) { return "Found User in $t header"; } if ($r=~/earthlinking\.net/i) { return "Found User in $t header"; } if ($r=~/\@shoppingplanet\.com/i) { return "Found User in $t header"; $DefinedUser = 1; } } } } } if ($DefinedUser == 1) { return "Processing First Header Pass"; } return undef; } # Call Get_First_Header_Pass with postoffice, user, password to be scanned. # sub Get_First_Header_Pass { my $postoffice, $user, $password, $pop, $msgcount, $i, $head, $reason, $subj, $from, $CaptureCount; ($postoffice, $user, $password) = @_; $pop = Net::POP3->new($postoffice) ; if (! defined($pop)) { die "Net::POP3::new failed for postoffice $postoffice\n"; } $msgcount = $pop->login($user, $password); if (! defined($msgcount)) { die "Cannot login to mailbox at $postoffice\n"; } ($msgcount, $msgsize) = $pop->popstat(); $CaptureCount = 0; for ($i = 1; $i <= $msgcount; ++$i) { $msgsize = $pop->list($i); $head = new Mail::Header $pop->top($i, 0); if ($reason = &scan_header($head, $msgsize)) { if ($verbose) { $subj = $head->get('Subject'); $from = $head->get('From'); if (! defined($subj)) { $subj = "\n"; } if (! defined($from)) { $from = "\n"; } print "Capturing mail:\n"; print " From: $from"; print " Subject: $subj"; print " Reason: $reason\n"; } #$pop->delete($i); ++$CaptureCount; } } $pop->quit(); if ($verbose && ($msgcount > 0)) { print "Looked at $msgcount message(s), Captured $CaptureCount\n"; } } # Actually do everything. # &Get_First_Header_Pass($postoffice, $user, $password);