Запретить Outlook отправлять winmail.dat (TNEF) с VBA или C#

Я создаю сообщения из инструмента слияния MS Word, используя Adobe PDFMaker Office COM Addin. Я получаю список сообщений с PDF-вложениями в папке "Исходящие" в MS Outlook. Но кроме необходимого.pdf-вложения все письма отправляются с "мусорным" приложением winmail.dat, что сильно смущает получателей (которые не используют Outlook).
Я хочу избавиться от этих вложений winmail.dat в письмах с помощью VBA (лучший способ), но, возможно, - с помощью C# (если это невозможно с использованием VBA). Я могу установить с помощью VBA формат моих писем в виде обычного текста, но это не помогает.

Редактировать: если один вручную удаляет winmail.dat, он будет снова прикреплен Outlook во время процесса отправки.

Есть отличная статья " Форсирование обычного текста с помощью MAPI" о механизме избавления от winmail.dat (как он работает), но, к сожалению, автор использовал C++, с которым я не знаком.
Итак, насколько я понял, необходимо полностью установить 3 флага MAPI, чтобы полностью избежать TNEF:

  • MAPI_SEND_NO_RICH_INFO
  • ENCODING_PREFERENCE
  • ENCODING_MIME

Я использовал OutlookSpy, чтобы исследовать флаги MAPI в моих исходящих электронных письмах, но даже не нашел таких флагов.
Я также читал о библиотеке Redemption и ее возможностях, но я также не нашел никаких намеков на эти флаги MAPI.
Кто-нибудь может объяснить или просто предложить: как установить эти флаги, используя VBA или C#?
или возможно другим способом избавиться от отправки winmail.dat?

1 ответ

Установите специальное именованное свойство UseTnef (имя DASL http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8582000B) ложное использование MailItem.PropertyAccessor.SetProperty,

Другие вопросы по тегам