如何检索电子邮件附件的内容,就像我 .ToString() 时显示的那样?

How to retrieve the content of an email's attachment just like it shows when I .ToString() it?

我似乎找不到任何方法 returns 我只是这个 e.ToString() 输出的编码部分。

('e' 是一个带有 1 个电子邮件附件的 MimeEntity)

这是输出的样子:

X-MimeKit-Warning: Do NOT use ToString() to serialize entities! Use one of the WriteTo() methods instead!
Content-Type: image/png; name="px.png"
Content-Description: px.png
Content-Disposition: attachment; filename="px.png"; size=119;
        creation-date="Tue, 06 Apr 2021 09:24:23 GMT";
        modification-date="Tue, 06 Apr 2021 09:24:56 GMT"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVO
RK5CYII=

我唯一要找的就是这部分:

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVO
RK5CYII=

您可以使用接受布尔值的 WriteTo overload 来指示您是否只需要 MimeEnity 的内容。

像这样


// 'e' is a MimeEntity

var ms = new MemoryStream();
e.WriteTo(ms, true); // no need to provide an cancellationtoken.

// ms will have only the content here

第三个参数 cancellationtoken 默认为空,因此您无需提供令牌实例。只有当您想在 WriteTo 操作完成之前优雅地结束它时,这才有意义。