从Perl中的邮件消息中获取标题(只是标题)

时间:2013-07-11 11:32:13

标签: perl parsing email

我想在Perl中提取邮件的标题。我不需要身体,因此我不想花时间解析它们。

Email::Simple::Header看起来很有用,但典型的实例化涉及解析整个电子邮件(包括正文)。所以我正在考虑像这样诋毁标题

local $/ = "\n\n";
my $head = <>;
my $parsed = Email::Simple::Header->new($head);

这是最有效的方式吗?

2 个答案:

答案 0 :(得分:2)

我不确定这会为你节省时间。电子邮件的正文不会被Email :: Simple解析。它唯一一次查看正文是通过调用Email::Simple::_split_head_from_body()将其从标题中分离出来。这与您使用$/ = "\n\n"完全相同,但更好地处理不同类型的换行。

除非您有分析证据表明您的程序花费了大量时间在不必要的电子邮件正文解析上(无论它在那里解析),所以请避免过早优化并正常使用Email::Simple模块

答案 1 :(得分:1)

零长度行将标题与消息的其余部分分开。您的perl脚本可以直接读取传入的消息,直到第一个零长度行,这就是标题。