- # open mail file
- open(VOTES, "<$filename")
- or die UVmessage::get("READMAIL_NOMAILFILE", (FILE => $filename)) . "\n\n";
-
- # read all mails
- my $i = 0;
- while (<VOTES>) {
- if (/$config{mailstart}/) {
- $i++;
+
+ my $mgr = Mail::Box::Manager->new;
+ my $folder;
+
+ eval{
+ $folder = $mgr->open( folder => $config{votefile},
+ create => 0,
+ access => 'rw',
+ type => $config{mailboxtype},
+ expand => 'LAZY',
+ );
+ };
+ die UVmessage::get("READMAIL_NOMAILFILE", (FILE => $config{votefile})) . "\n\n" if $@;
+
+ # Iterate over the messages.
+ foreach (@$folder) {
+ my $mail = $_->string;
+ $_->delete();
+ my $fromline = 'From ';
+ if ($mail =~ /From: .*?<(.+?)>/) {
+ $fromline .= $1;
+ } elsif ($mail =~ /From:\s+?(\S+?\@\S+?)\s/) {
+ $fromline .= $1;
+ } else {
+ $fromline .= 'foo@bar.invalid';