Справочная информация: я работаю над надстройкой Outlook, которая добавляет вложение к исходящим электронным письмам.Поддержка требуется для всех версий Outlook.
Когда MailItem подписан цифровой подписью, добавление вложения к этому mailItem обычно завершается неудачно, если вы не сохраните почтовый элемент.Это удаляет подпись с mailitem.Для меня это несколько ожидаемое поведение.Ничего странного в этом нет.
Проблема в том, что пользователь включает цифровые подписи (через пользовательский интерфейс или как поведение Outlook по умолчанию), а затем снова выключает его.MailItem больше не подписан, но он по-прежнему ведет себя так, как будто он - мы не можем добавить вложение в это письмо.
Я нашел сообщение в группе новостей, которое может объяснить, почему;Похоже, что объекты, полученные через API outlook, не являются фактическими объектами.
http://www.tech -archive.net / Архив / Разработка / microsoft.public.win32.programmer.messaging / 2006-02/msg00000.html
На данный момент я перестал пытаться красиво решить эту проблему;сохранение MailItem во временный файл, по-видимому, исправляет это, однако по соображениям производительности мы хотели бы сохранить только, когда MailItem перешел от подписанного к неподписанному.Другой приемлемой альтернативой является обнаружение, включены ли цифровые подписи по умолчанию или нет.Хотя есть запись в реестре, связанная с настройкой цифровой подписи по умолчанию, это всего лишь предложение, и оно не отражает точно, было бы электронное письмо подписано по умолчанию или нет.
Есть идеи?