2009-08-14 23 views
0

這是一個簡單的問題。我在這裏有一個小程序,它讀取 該程序指定的用戶帳戶的特定收件箱中的電子郵件列表。 我可以使用其用戶名,密碼和主機訪問帳戶。唯一的問題是我不知道如何獲得每封郵件的日期。如何使用Perl的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。

請幫助我嗎? :)

回答

1

MboxParser::Email文檔,你應該能夠做到:

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

如果你有一個以上的返回日期,$date將是一個數組引用,您可以訪問日期的第一次出現與:

$date->[0]; 

所以你不應該需要通過標題循環,並使用正則表達式。

相關問題