C# 使用Mailkit缺少附件

C# 使用Mailkit缺少附件,c#,mailkit,mimekit,C#,Mailkit,Mimekit,当我使用MailKit通过IMAP协议从Exchange收到带有附件的邮件时,它缺少附件。 当我这样做时: string.Format("Mail has {0} attachments", mime.Attachments.Count()) 它报告“0”,即使邮件本身包含附件(如果我在Outlook client中打开它,我会看到附件),并且当我激活IMAP协议日志记录时,它显然包含附件: S: X-MS-Has-Attach: yes ... S: Content-Type: messag

当我使用MailKit通过IMAP协议从Exchange收到带有附件的邮件时,它缺少附件。 当我这样做时:

string.Format("Mail has {0} attachments", mime.Attachments.Count())
它报告“0”,即使邮件本身包含附件(如果我在Outlook client中打开它,我会看到附件),并且当我激活IMAP协议日志记录时,它显然包含附件:

S: X-MS-Has-Attach: yes
...
S: Content-Type: message/rfc822
S: Content-Disposition: attachment;
S:  creation-date="Thu, 07 Jan 2016 09:16:53 GMT";
S:  modification-date="Thu, 07 Jan 2016 09:16:53 GMT"
...
S: X-MS-Has-Attach:
...
有趣的是附件部分中的“S:X-MS-Has-Attach:”头,在服务器的同一个包中

这是一个已知的问题,我如何解决它,使我不会错过附件在这些情况下?这似乎只发生在一些邮件上,而且是随机发生的

使用: 邮箱1.0.14.0 MimeKit 1.0.13.0


我发现有新的更新,但如果这不能解决问题,我就不会真正更新。

在您正在使用的MimeKit版本中,
MimeMessage.Attachments
IEnumerable
,但message/rfc822部分由
MessagePart
表示,它不是
MimePart
的子类,它是
MimeEntity
(它是
MimePart
的基类)的子类

在较新版本中,
MimeMessage.Attachments
IEnumerable
,因此将包含您的邮件/rfc822附件


您可以在您的MimeKit版本中解决此问题,方法是使用
BodyParts
属性而不是
Attachments
属性。

更新似乎解决了此问题。至少我现在可以正确地看到附件数量。干杯