我正在使用MailKit/MimeKit 1.2.7(最新的NuGet版本).
我正在使用ImapClient接收可能具有不同附件(图像,文本文件,二进制文件等)的电子邮件.
MimeMessage的Attachment属性帮助我访问所有这些附件 - 除非电子邮件与Apple Mail一起发送并包含图像(似乎Apple Mail没有附加带有内容处置的图像"附件"(在此处阅读...来自Jeffrey Stedfast的评论)在最底部).
附件集合中未列出嵌入的图像.
我有什么选择?我是否真的必须逐个穿过身体部位,看看里面是什么?或者是否有更简单的解决方案?
" 使用消息"文档列出了一些检查消息中MIME部分的方法,但另一个简单的选项可能是使用该BodyParts属性MimeMessage.
首先,让我们来看看该MimeMessage.Attachments属性的工作原理:
public IEnumerable<MimeEntity> Attachments {
get { return BodyParts.Where (x => x.IsAttachment); }
}
Run Code Online (Sandbox Code Playgroud)
正如你已经注意到,这个属性不返回你正在寻找附件的原因是因为他们没有Content-Disposition: attachment这是什么MimeEntity.IsAttachment性质的检查.
备用规则可能是检查文件名参数.
var attachments = message.BodyParts.Where (x => x.ContentDisposition != null && x.ContentDisposition.FileName != null).ToList ();
Run Code Online (Sandbox Code Playgroud)
或许你可以说你只想要所有图像:
var images = message.BodyParts.OfType<MimePart> ().Where (x => x.ContentType.Matches ("image", "*")).ToList ();
Run Code Online (Sandbox Code Playgroud)
希望能为您提供有关如何获得所需物品的一些想法.
| 归档时间: |
|
| 查看次数: |
1558 次 |
| 最近记录: |