2016-01-13 87 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