gpt4 book ai didi

perl - 使用 Email::MIME 和 multipart/signed 解析电子邮件

转载 作者:行者123 更新时间:2023-12-02 08:45:17 26 4
gpt4 key购买 nike

我是一个 Perl 新手,试图找出如何解码包含多个部分的 MIME 编码电子邮件。我不确定惯例,因此我将仅包含我认为相关的电子邮件部分:

 Content-Type: multipart/mixed; boundary="===============3385789078715843912=="
Mime-Version: 1.0

--===============3385789078715843912==
Content-Type: multipart/signed; micalg="pgp-sha256";
protocol="application/pgp-signature"; boundary="=-0+dmFxz+BsFOEAAxvudu"


--=-0+dmFxz+BsFOEAAxvudu
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KVWJ1bnR1IFNlY3VyaXR5IE5vdGljZSBVU04tMzIxMC0xCkZlYnJ1
YXJ5IDIzLCAyMDE3CgpMaWJyZU9mZmljZSB2dWxuZXJhYmlsaXR5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CgpBIHNlY3VyaXR5IGlzc3VlIGFmZmVjdHMgdGhlc2UgcmVsZWFzZXMgb2YgVWJ1bnR1IGFuZCBp
dHMgZGVyaXZhdGl2ZXM6CgotIFVidW50dSAxNi4wNCBMVFMKLSBVYnVudHUgMTQuMDQgTFRTCi0g

我有以下代码:

  my $msg = Email::MIME->new($buf);

for my $part ($msg->parts) {
if ($part->content_type =~ m!multipart/mixed!
or $part->content_type eq '' )
{
print "Found Multipart";
for my $subpart ($part->parts) {
print $subpart->body;
}
}
}

我真的不知道下一步该做什么。我对此有十几种不同的变体,但经过四个小时的研究后还没有更接近它。如果有人可以帮助我确定用于阅读签名电子邮件的文本子部分的正确 Perl 模块和函数,我将不胜感激。

最佳答案

Email::MIME 的文档建议not to use parts ,因为这是一个愚蠢的方法。如果没有部件,它返回自己的对象。这很奇怪。

而是使用 subparts method获取电子邮件的部分内容。然后再次使用它来迭代该部分的所有部分。如果有,它将进入。打印该子部分的 body 就完成了。

foreach my $part ( $msg->subparts ) {
foreach my $sub_part ($part->subparts) {
print $sub_part->body;
}
}

关于perl - 使用 Email::MIME 和 multipart/signed 解析电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42800574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com