在没有 content-disposition 的情况下识别 MimeKit 中的邮件附件时出现问题

Problems identifying mail attachments in MimeKit with no content-disposition

我一直在尝试找到一封没有 content-disposition 内联附件的电子邮件中的所有附件。

这是电子邮件的片段

----boundary_4451_1ea18041-d01e-46e2-8f88-32770bfba1b7
Content-Type: application/octet-stream; name=img0.png
Content-Transfer-Encoding: base64
Content-ID: <image1>

..image base64 here..
----boundary_4451_1ea18041-d01e-46e2-8f88-32770bfba1b7

已尝试附件 collection,但显然不在其中。 还尝试了一种方法,其中 "body" 被识别,然后其他所有内容都被视为附件。然而,这也将 html body 作为附件,因为 headers 也值得怀疑。

感谢任何帮助,或者如果您需要更多信息,请告诉我。谢谢

您在问题中粘贴原始来源的 MIME 部分将位于 MimeMessage.BodyParts,因为它未通过 Content-Disposition header 标记为附件,如您所见。

每个电子邮件客户端对什么构成附件都有自己的想法,因此由您决定如何确定某个内容是否为附件,MimeKit 无法为您确定。

您是否查看了 FAQ 中的 HtmlPreviewVisitor 示例代码?

该示例代码片段向您展示了如何将电子邮件呈现为 HTML 并收集所有引用的图像附件等,并将所有其他 non-referenced 附件收集到一个附件列表。