Обработка цифрового идентификатора / подписи в надстройке Outlook - PullRequest
2 голосов
/ 06 апреля 2010

У меня есть приложение C # Outlook Add-In (VS2005 и 2003 Outlook), которое считывает входящие электронные письма и удаляет вложения и текст сообщения для дальнейшей обработки. Иногда я получаю электронное письмо с цифровой подписью. При попытке получить доступ к свойству mailitem.body произойдет сбой приложения, выдав следующее исключение:

System.Runtime.InteropServices.COMException (0xAB404001): операция не выполнена. в Microsoft.Office.Interop.Outlook._MailItem.get_Body () в MyLib.MyApp.OutlookAddin.MailProcessor.ProcessMailItem (MailItem mailItem)

Я почти уверен, что именно цифровая подпись вызывает проблему, потому что, если я переадресую электронное письмо обратно на себя, оно удалит цифровую подпись исходного отправителя, и приложение-надстройка обработает электронную почту без проблем. Я не уверен, что делать. Мне нужно обработать письмо, поэтому я не могу просто проигнорировать его. Каким-то образом было бы идеально получить тело исходного письма без исключения. Или я предполагаю, что если я смогу определить, что с электронной почтой связана цифровая подпись, я мог бы переслать письмо самому себе, но это выглядит немного грязно. У кого-нибудь есть какие-либо предложения / исправления? Спасибо за любую помощь.

1 Ответ

1 голос
/ 17 июня 2010

Продолжение. В итоге я бросил вызов get_body в блок try..catch. Если произошла ошибка, я переместил письмо в другую папку Outlook для ручной обработки. Вот ссылка на вопрос, который я разместил на форуме Microsoft, и ответ, который я получил. http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/d8b29cff-7656-4440-920a-21047c1ff82f

...