Как узнать, является ли вложение подписью в электронном письме Outlook

У меня есть электронное письмо Outlook, и мне нужно обработать его вложения. Но при повторении вложений, если вложение является подписью, я хочу его пропустить.

Чтобы узнать, является ли вложение подписью, которую я использую:

outlookMailItem.Attachments[i].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E");

Но я получаю предупреждение системы безопасности Outlook.

Есть ли другой способ использовать более безопасный код? Можно ли это сделать с помощью Redemption?

Спасибо за уделенное время.


person Community    schedule 03.02.2012    source источник


Ответы (2)


Свойство PR_ATTACH_CONTENT_ID является хорошим показателем того, что вложение является встроенным изображением, но есть вложения, для которых установлено свойство PR_ATTACH_CONTENT_ID, но они не являются встроенными изображениями (Lotus Notes любит устанавливать PR_ATTACH_CONTENT_ID для всех вложений). Даже если PR_ATTACH_CONTENT_ID не установлен, Outlook может использовать PR_ATTACH_CONTENT_LOCATION или PR_ATTACH_LONG_FILENAME для загрузки встроенного изображения. Единственный реальный тест - это проанализировать тело HTML и выяснить, какие теги <img> относятся к вложениям. Redemption позволит вам получить доступ к этому ресурсу с помощью RDOAttachment. Поля, вы также можете использовать RDOAttachment .Hidden, с помощью которого можно пройти через несколько шагов, чтобы выяснить, является ли вложение встроенным изображением, а не« настоящим »вложением.

person Dmitry Streblechenko    schedule 03.02.2012

Свойство RDOAttachment.Hidden хорошо работает, только если формат электронной почты - HTML. Для сообщений электронной почты в формате RTF изображение подписи будет рассматриваться как любое другое вложение и будет иметь это значение как false. Лучше было бы использовать Attachment.Type, который работает как для HTML, так и для Rich Text. Для подписи это всегда будет olOLE, а для других вложений - olByValue. Таким образом, вы можете фильтровать изображения подписей, используя это свойство. Однако обратите внимание, что если формат электронной почты - Rich Text и если у вас есть снимок экрана, встроенный в электронное письмо, он обрабатывается как тип olOLE.

person Sham    schedule 10.12.2014