首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问嵌入式附件?

如何访问嵌入式附件?
EN

Stack Overflow用户
提问于 2015-07-15 07:15:53
回答 1查看 3K关注 0票数 6

我正在使用MailKit/MimeKit1.2.7(最新的NuGet版本)。

我正在使用ImapClient接收电子邮件,可以有不同的附件(图像,文本文件,二进制文件等)。

MimeMessage的Attachment属性帮助我访问所有这些附件--除非电子邮件是用Apple 发送的,包含图像(似乎Apple没有附加带有内容处理“附件”的图像(请阅读这里 .以下是杰弗里·斯特法斯特的评论)。

嵌入的图像是,而不是附件集合中列出的

我有什么选择?我真的要一个一个地遍历身体的各个部分,看看里面是什么吗?还是有更简单的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 14:47:44

处理消息文档列出了检查消息中MIME部分的几种方法,但另一个简单的选项可能是在MimeMessage上使用BodyParts属性。

首先,让我们看看MimeMessage.Attachments属性是如何工作的:

代码语言:javascript
复制
public IEnumerable<MimeEntity> Attachments {
    get { return BodyParts.Where (x => x.IsAttachment); }
}

正如您已经注意到的,这个属性没有返回您要查找的附件的原因是因为它们没有Content-Disposition: attachment,这就是MimeEntity.IsAttachment属性正在检查的内容。

另一条规则可能是检查文件名参数。

代码语言:javascript
复制
var attachments = message.BodyParts.Where (x => x.ContentDisposition != null && x.ContentDisposition.FileName != null).ToList ();

或者你可以说你只想要所有的图像:

代码语言:javascript
复制
var images = message.BodyParts.OfType<MimePart> ().Where (x => x.ContentType.IsMimeType ("image", "*")).ToList ();

希望这能给你一些关于如何得到你想要的东西的想法。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31423809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档