2016-01-13 5 views
3

Когда я получаю почту с сообщениями из Exchange по протоколу IMAP с помощью MailKit, в нем отсутствует вложение. Когда я делаю:Отсутствие вложений с помощью 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-ли-Attach:» заголовок в крепежной части, в пределах того же пакета от сервера.

Это известная проблема, и как ее исправить, поэтому я не пропущу вложения в этих случаях? Кажется, что это происходит на некоторых почтовых сообщениях и происходит случайным образом.

Использование: MailKit 1.0.14.0 MimeKit 1.0.13.0

я обнаружил, что есть новое обновление, но я реально не изменится, если это не решит проблему в любом случае.

ответ

5

В версии MimeKit, которые вы используете, MimeMessage.Attachments является IEnumerable<MimePart>, но сообщение/rfc822 часть представлена ​​MessagePart, не подкласс MimePart, это подклассы MimeEntity (который является базовым классом для MimePart).

В более новых версиях MimeMessage.Attachments вместо этого находится IEnumerable<MimeEntity>, и поэтому будет включать ваше сообщение/приложение rfc822.

Вы можете обойти это в своей версии MimeKit, используя свойство BodyParts, а не свойство Attachments.

+0

Возможно, обновление исправляет проблему. По крайней мере, я могу видеть, что счет прикрепления правильно. ура – grmihel

Смежные вопросы