perl从imap消息中获取所有消息头

时间:2014-09-25 11:48:52

标签: perl imap

我使用Mail::IMAPClient

有一些变数

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

$ body包含消息体,但$ header包含消息的标题和正文。我还没有在IMAPClient中找到一个只获取邮件头的方法。

我需要从$ header中删除body。拆分$ body和$ header bad variant,因为body可以非常大。正文和标题分隔空字符串,但我不知道如何使用它。

1 个答案:

答案 0 :(得分: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"; }
}