peterr has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use warnings; use File::Find; find(\&wanted, "."); sub wanted { return if -d; print "$File::Find::name", "\n"; }
#C:\Perl\bin\Perl.exe -w use strict; use IO::File; use Data::Dumper; use Mail::MboxParser; BEGIN { use CGI::Carp qw(carpout); open(LOG, ">>parsembox-log") or die("Unable to open parsembox-log: $!\n"); carpout(LOG); } use Mail::Box; use Mail::Box::Manager; use Mail::Message; my $mb = Mail::MboxParser->new('/home/*********/Mail/.family.directory +/Browne, Bill & Martha/FOL03E97.PMM', decode => 'ALL'); # ----------- # slurping for my $msg ($mb->get_messages) { print $msg->header->{subject}, "\n"; $msg->store_all_attachments('/tmp'); } # iterating while (my $msg = $mb->next_message) { print $msg->header->{subject}, "\n"; # ... } my $data ="To: mickey@somewhere.com"; my $msg = Mail::Message->read($data); my @addr = $msg->get('To')->addresses; exit(0); sub parse_mail_folder { print "into parse_mail_folder sub","\n"; my $folder_file = shift; print "Folder file: ",$folder_file,"\n"; my $mgr = Mail::Box::Manager->new(); print "my $mgr value: ",$mgr,"\n"; my $folder = $mgr->open($folder_file) or die "Cannot open Folder", +"\n"; print "my folder value: ",$folder,"\n"; #my $message1 = $folder->message; #print "message: ",$message1,"\n"; my @email_addr; foreach my $message ($folder->messages) { print $message->get('Subject') || '<no subject>', "\n"; print "into foreach loop","\n"; my $dest = $message->get('To'); # retrieve the To-address print $dest,"\n"; @email_addr = split /,/, $dest; # retrieve multiple addresses # assume the email address format is as follows - # # John & Jenny Arnold <johnarnold@somedomain.com> # # you have to tweak a bit if the format is not as expected # or use the Mail::Address module to do the trick - to # convert the mail address into its canonical form. foreach (@email_addr) { my ($name, $addr) = /(.*)<(.*)>/; $name = s/^\s+//g; # trim spaces at front $name = s/\s+$//g; # trim spaces at rear $addr = s/^\s+//g; # trim spaces at front $addr = s/\s+$//g; # trim spaces at rear #print Dumper($addr); print $addr,"\n"; if (! exists $MailList->{$addr}) { # ok, we haven't seen this Email address yet $MailList->{$addr} = $name; # and do other things print Dumper($name); } } } $folder->close; } sub load_mail_list { my $filename = shift; my $f = new IO::File $filename, "r" or die "Can not open mail list +"; my %mlist; # load the header chomp($mlist{title} = <$f>); chomp($mlist{sender} = <$f>); chomp($mlist{nosig} = <$f>); <$f>; # load the rest of the email addresses my %MailAddress; while (<$f>) { chomp; my ($name, $email) = /^(.*)\s+<(.*)>$/; next if $email eq ''; $MailAddress{$email} = $name; } $mlist{mlist} = \%MailAddress; return \%mlist; } sub load_mail_folders { my $filename = shift; my $f = new IO::File $filename, "r" or die "Can not open mail list +"; my %mbox; while (<$f>) { chomp; next unless ( $_ ne '' and m/^0,0,/ ); s/"//g; my @fld = split /,/; my ($folder) = $fld[2] =~ /.*:.*:(.*)/; $mbox{$fld[-1]} = "/home/*********/Mail/.family.directory/Brow +ne, Bill & Martha/$folder.PMM"; # full path to mboxes } return \%mbox; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: extracting name & email address
by karlgoethebier (Abbot) on Feb 23, 2015 at 10:18 UTC | |
by peterr (Scribe) on Feb 23, 2015 at 23:54 UTC | |
by peterr (Scribe) on Feb 24, 2015 at 01:00 UTC | |
by peterr (Scribe) on Feb 24, 2015 at 03:24 UTC | |
by Anonymous Monk on Feb 24, 2015 at 03:33 UTC | |
| |
by peterr (Scribe) on Feb 24, 2015 at 23:42 UTC | |
| |
|
Re: extracting name & email address
by GrandFather (Saint) on Feb 23, 2015 at 03:39 UTC | |
by peterr (Scribe) on Feb 23, 2015 at 08:12 UTC | |
by Corion (Patriarch) on Feb 23, 2015 at 08:23 UTC | |
by peterr (Scribe) on Feb 23, 2015 at 08:43 UTC | |
by Anonymous Monk on Feb 23, 2015 at 08:25 UTC | |
by peterr (Scribe) on Feb 23, 2015 at 09:08 UTC | |
by Anonymous Monk on Feb 23, 2015 at 10:48 UTC | |
| |
by peterr (Scribe) on Feb 23, 2015 at 05:22 UTC | |
by Anonymous Monk on Feb 23, 2015 at 07:47 UTC |