如何从电子邮件正文中提取附件(以 base64 编码)

如何从电子邮件正文中提取附件(以 base64 编码)

当附件以如下方式编码到电子邮件正文中时,如何从电子邮件中提取附件:

------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615
Content-Type: application/octet-stream; name="MyFile_hasalongish
     filename_22-NOV-2010.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyFile_hasalongishfilename_22-NOV-2010.pdf"
Content-Description: MyFile_hasalongishfilename_22-NOV-2010.pdf

JVBEDi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0
ZFRGVSdsfSDF43N0cmVhbQp4nJ0b23IVN/LdXzG1D7vnbOUMo9tISiWpBduAN2CMbZJN
[...]
OUIwOEYxRDcyRjkwRDAxRUU1QzBDMjhEM0Y+XQo+PgpzdGFydHhyZWYKMTMwNDQKJSVF
T0YK
------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615--

答案1

将电子邮件保存为带有扩展名的文本文件.uue,然后使用解压程序提取附件。

答案2

仅将 base64 编码的文本复制到新的文本文件中foo.txt

base64 --decode foo.txt > bar.pdf

我刚刚解码了一个 base64 流,它末尾有一个多余的位,我必须将其删除。它看起来像这样:--=_59494bda030d4629113a60ff13935d81--。在删除它之前,我收到错误:Invalid character in input stream.删除它之后,没有解码错误,它可以正常打开。

答案3

我能够使用 base64 解码器恢复文件,并且仅复制编码附件的实际文本,而不是任何周围的页眉/页脚内容。

相关内容