簡體   English   中英

如何使用Perl的Mail :: MboxParser :: Mail獲取電子郵件的日期?

[英]How can I get the date of an email using Perl's Mail::MboxParser::Mail?

這是一個簡單的問題。 我這里有一個小程序,可以讀取該程序指定的用戶帳戶的特定收件箱中的電子郵件列表。 我可以使用其用戶名,密碼和主機訪問帳戶。 唯一的問題是我不知道如何獲取這些郵件的日期。

這是我的代碼的一部分:

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。

請幫我嗎? :)

根據MboxParser :: Email文檔,您應該能夠執行以下操作:

$date = $mail->header->{'date'}; #Keys are all lowercase

如果返回的$date不止一個,則$date將是數組引用,您可以使用以下命令訪問Date的第一次出現:

$date->[0];

因此,您無需遍歷標頭並使用正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM