Mimekit,IMapClient获取附件信息而无需下载整个消息

时间:2016-04-27 06:28:38

标签: c# mailkit mimekit

我使用以下代码获取主题信息。

是否可以知道电子邮件是否包含附件,或许更具体地说是excel电子表格(xls / xlsx)而不下载整个邮件?

event_packing_item

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。但是,为了做到这一点,您需要将<div class="container"> <div class="row"> <div>Some text</div> <div class="col-md-12"> <div> More text </div> </div> </div> </div> 标记传递给MessageSummaryItems.BodyStructure方法。

这将填充Fetch()属性。

如果填充了summary.Body属性,则可以将Body属性用作快速&amp;迭代消息中正文部分的身体部分的脏方法,检查它们中的任何一个是否是这样的附件:

BodyParts

检查xls / xlsx附件的一种方法可能如下:

var hasAttachments = summary.BodyParts.Any (x => x.IsAttachment);

然而,这些是非常简单的检查,并且很可能您对附件的内容的解释将与IsAttachment属性告诉您的内容相冲突,因此我可能建议使用访问者模式用于遍历MIME层次结构,或者使用递归并使用您自己的逻辑来确定某个部件是否是您自己的自定义定义的附件(每个人似乎都有自己独特的解释构成&#34;附件&#34;当它来电子邮件)。

我在以下位置获得了常见MIME层次结构的文档:

  1. http://www.mimekit.net/docs/html/WorkingWithMessages.htm#MessageStructure
  2. http://www.mimekit.net/docs/html/FrequentlyAskedQuestions.htm#MessageBody
  3. ......可能还有其他地方。