シンプルにするためにMail::POP3Clientを使用しており、最新のn
メッセージ (私のコードでは 5) のヘッダーを取得したいと考えています。これはウェブスクリプトで、ページの読み込み時に最新の 5 通のメールがダウンロードされて解析されます (件名と送信者)。同じように)。どうやらmy $email_count = $pop->Count;
カウントだけで、インデックス型の値ではありませんか?
for (my $i = $email_count; $i >= $email_count-5; $i--) {
foreach ($pop->Head($i)) {
if (/^(From):\s+/i) { $FROM = $_; }
if (/^(Subject):\s+/i) { $SUBJECT = $_; }
if (/^(Date):\s+/i) {
$TIME = $_;
$TIME =~ s/Date: (.*)/$1/;
my $tstamp = str2time($TIME);
# $TIME = $tstamp;
$TIME = scalar localtime($tstamp);
my @fromsubj;
$fromsubj[0] = $FROM;
$fromsubj[1] = $SUBJECT;
$subject{$TIME} = [@fromsubj];
}
}
print "Index: $i \n";
}
print Dumper(%subject);
print "\n";
print Dumper(%from);
print "Mails $email_count to ".($email_count-5);
出力:
Index: 4030
Index: 4029
Index: 4028
Index: 4027
Index: 4026
Index: 4025
$VAR1 = 'Thu Jul 26 09:01:07 2012';
$VAR2 = [
'From: Person one ',
'Subject: Fwd: test '
];
$VAR3 = 'Tue Jul 24 15:09:43 2012';
$VAR4 = [
'From: person two ',
'Subject: subj '
];
(And so on)
....
Count 4030 4020
最新のメールのみを取得するにはどうすればよいですか? これは、POP/このモジュールでまったく可能ですか? そうでない場合、代わりに何を使用できますか?