这是一个简单的问题。我这里有一个小程序可读 程序指定的用户帐户的特定收件箱中的电子邮件列表。 我可以使用其用户名,密码和主机访问帐户。唯一的问题是我不知道如何在每封邮件上获取日期。
以下是我的代码的一部分:
my $pop = new Mail::POP3Client(
USER => $user, #some user,password & host assigned
PASSWORD => $pass,
HOST => $host );
for( $i = 1; $i <= $pop->Count(); $i++ ) {
@header = $pop->Head($i);
@body = $pop->Body($i);
$mail = new Mail::MboxParser::Mail(\@header, \@body);
$user_email = $mail->from()->{email
print "Email:".$user_email; #this prints out right
foreach( $pop->Head( $i ) ) {
/^(Date):\s+/i && print $_, "\n";
$date = $_;
}
}
现在我需要的是每封电子邮件只有一个日期, 但那个循环给了我所有..但是当删除循环时,它 返回错误。我正在使用Perl。
请帮助我? :)
答案 0 :(得分:1)
根据MboxParser::Email doc,您应该能够:
$date = $mail->header->{'date'}; #Keys are all lowercase
如果您返回的日期不止一个,$date
将是一个数组参考,您可以通过以下方式访问日期的第一个日期:
$date->[0];
因此,您不需要遍历标头并使用正则表达式。