1

着手编写一个简单的 procmail recipie,如果它在主题中找到“未配置”文本,它将把邮件转发给我。

:0:
* ^Subject:.*Unprovisioned.*
! me@test.com

不幸的是,来自邮件服务器的邮件消息中的主题字段是 MIME 编码字语法。

形式为:“=?charset?encoding?encoded text?=”。

 Subject: =?UTF-8?B?QURWSVNPUlk6IEJNRFMgMTg0NSwgTkVXIFlPUksgLSBVbnByb3Zpc2lvbmVkIENvbm4gQQ==?=
    =?UTF-8?B?bGVydA==?=

上面的主题是 utf-8 字符集,base64 编码,文本折叠成两行。所以想知道是否有任何机制/脚本/实用程序来解析它并转换为字符串格式,以便我可以应用我的 procmail 过滤器。当然,我可以编写一个 perl 脚本来解析它并执行所需的验证,但如果可能的话,尽量避免它。

4

1 回答 1

9

Perl 附带的Encode::MIME::Header,可通过 Encode 直接访问:

use Encode qw(encode decode);
my $header_text = decode('MIME-Header', $header);
于 2012-02-08T16:48:45.257 回答