2016-01-13 92 views
3

当我使用MailKit通过IMAP协议从Exchange收到带有attachcment(s)的邮件时,它缺少附件。 当我做:使用Mailkit丢失附件

string.Format("Mail has {0} attachments", mime.Attachments.Count()) 

它报告“0”,甚至尽管该邮件本身包含一个附件(我见附件,如果我在Outlook客户端中打开它),当我启动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-附:”在安装部的头球服务器的同一封装内。

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

使用: MailKit 1.0.14.0 MimeKit 1.0.13.0

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

回答

5

在MimeKit的版本所使用,MimeMessage.AttachmentsIEnumerable<MimePart>,但是一个消息/ RFC822部分由MessagePart不继承MimePart表示,它的子类MimeEntity(其是用于MimePart基类)。

在新版本中,MimeMessage.AttachmentsIEnumerable<MimeEntity>代替,等会包括你的消息/ RFC822附件。

您可以通过使用BodyParts财产,而不是Attachments财产解决这个在您的MimeKit的版本。

+0

该更新似乎解决了这个问题。至少我现在可以正确地看到附件计数。干杯 – grmihel