#!/usr/bin/perl -I../blib/lib
require 5.00397;
use strict;
use Mail::Folder::Mbox;
use Mail::Folder::Maildir;
use Mail::Folder::Emaul;
use Mail::Address;
unless (@ARGV) {
my $maildir = '/var/spool/mail';
my $user = `whoami`;
chomp($user);
my $mailfile = "$maildir/$user";
die("No mail\n") if (!-f $mailfile);
push(@ARGV, $mailfile);
}
for my $file (@ARGV) {
my $folder = new Mail::Folder('AUTODETECT', $file);
unless ($folder) {
warn("can't open $folder: $!");
next;
}
for my $msg (sort { $a <=> $b } $folder->message_list) {
my $mref = $folder->get_header($msg);
my $from = $mref->get('From'); chomp($from);
my $subj = $mref->get('Subject'); chomp($subj);
my @addrs = Mail::Address->parse($from);
if (@addrs) {
if ($from = $addrs[0]->phrase) {
$from =~ s/^"//; $from =~ s/"$//;
} elsif ($from = $addrs[0]->comment) {
$from =~ s/^\(//; $from =~ s/\)$//;
} else {
$from = $addrs[0]->address;
}
}
printf("%-20s %s\n", $from, $subj);
}
$folder->close;
}
syntax highlighted by Code2HTML, v. 0.9.1