У меня есть надстройка Outlook, созданная для отправки больших файловых вложений. Когда пользователь пытается прикрепить файл, он фактически присоединяет файл-заполнитель «.txt», содержимое которого является путем к фактическому вложению. Когда пользователь отправляет электронное письмо, надстройка пытается прочитать содержимое вложения-заполнителя, чтобы получить путь к фактическому вложению. Это делается с помощью метода Attachment.PropertyAccessor.GetProperty
при передаче значения "http://schemas.microsoft.com/mapi/proptag/0x37010102"
(PR_ATTACH_DATA_BIN).
byte[] attachmentData = attachment.PropertyAccessor.GetProperty(
"http://schemas.microsoft.com/mapi/proptag/0x37010102");
Это работало несколько лет, и я не обновлял свою надстройку 4 месяца, но с сегодняшнего дня она работает по-другому. Теперь возвращаемое значение для этого метода возвращает массив байтов правильной длины (в моем случае 93 для 93-байтового файла-заполнителя), но все элементы в массиве байтов равны 0. Если я открою файл-заполнитель, все содержимое выглядишь правильно, поэтому я не понимаю, в чем проблема. В настоящее время мы используем последнюю сборку Outlook 2016 (версия 1711, сборка 8730.2127), и я даже пытался вернуться к последним 2 сборкам, но проблема все еще возникает.
Кто-нибудь знает, изменилось ли что-то в Outlook 2016 в отношении MAPI?
Примечание. Я пытался использовать OutlookSpy, чтобы узнать, что происходит, но на вкладке GetAttachmentTable
нет записей, хотя из пользовательского интерфейса Outlook я ясно вижу, что есть вложение.