4

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

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-Attach:”标头,位于服务器的同一包中。

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

使用:MailKit 1.0.14.0 MimeKit 1.0.13.0

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

4

1 回答 1

6

在您使用的 MimeKit 版本中,MimeMessage.AttachmentsIEnumerable<MimePart>,但 message/rfc822 部分由MessagePart不子类的 a 表示MimePart,它是子类MimeEntity(这是 的基类MimePart)。

在较新的版本MimeMessage.Attachments中,IEnumerable<MimeEntity>将包含您的 message/rfc822 附件。

您可以在您的 MimeKit 版本中通过使用BodyParts属性而不是属性来解决此问题Attachments

于 2016-01-13T19:56:02.957 回答