2014-09-25 53 views
3

我用Mail::IMAPClientPerl中得到的所有消息頭從IMAP郵件

有一些變量

$body = $imap->body_string($msg); 
$header = $imap->message_string($msg); 

$正文中包含郵件的正文,而是$頭包含郵件的標題和正文。我還沒有在IMAPClient中找到一個只有郵件頭的方法。

我需要從$頭刪除體。分割$ body和$ header變體,因爲body可以非常大。正文和標題分隔空字符串,但我不知道如何使用它。

回答

2

請看看http://gagravarr.org/code/test-imap-headers.pl

它建議Mail::IMAPClient包支持/支持的「關鍵字」「ALL」讓所有的頭一下子:

my %headers = %{ $imap->parse_headers($msg, "ALL") }; 
for my $h (keys %headers) { 
    my @hdrs = @{ $headers{$h} }; 
    print "$h (" . scalar @hdrs . " entries)\n"; 
    foreach (@hdrs) { print "\t$_\n"; } 
} 
+0

我試試「ALL」,但我返回散列。這樣,作品幾乎就像我需要的一樣。謝謝! – Alexandr 2014-09-25 12:20:22

+0

太好了。 BTW:在片段你看到一個迭代通過哈希(底部) – 2014-09-25 12:28:39

+0

我明白了,我的意思是試圖「ALL」之前,不知道如何做什麼,我需要一個哈希值。 – Alexandr 2014-09-25 12:36:55