3

我有一个 C# Outlook 加载项应用程序(VS2005 和 2003 Outlook),它读取传入的电子邮件并删除附件和电子邮件文本正文以供将来处理。有时我会收到一封包含数字签名的电子邮件。当我尝试访问 mailitem.body 属性时,应用程序将失败,并引发以下异常:

System.Runtime.InteropServices.COMException (0xAB404001):操作失败。在 Microsoft.Office.Interop.Outlook._MailItem.get_Body() 在 MyLib.MyApp.OutlookAddin.MailProcessor.ProcessMailItem(MailItem mailItem)

我很确定是数字签名导致了问题,因为如果我将电子邮件转发给我自己,它将剥离原始发件人的数字签名,并且加载项应用程序将毫无问题地处理电子邮件。我不知道该怎么办。我需要处理这封电子邮件,所以我不能忽略它。以某种方式获取原始电子邮件的正文而不抛出异常将是理想的。或者我想如果我可以识别出与电子邮件关联的数字签名,我可以将电子邮件转发给自己,但这似乎有点混乱。有没有人有任何建议/修复?谢谢你的帮助。

4

1 回答 1

1

跟进。我最终做的是在 try..catch 块中调用 get_body 。如果出现错误,我将电子邮件移至另一个 Outlook 文件夹进行手动处理。这是我在微软论坛上发布的问题的链接以及我收到的回复。 http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/d8b29cff-7656-4440-920a-21047c1ff82f

于 2010-06-17T14:01:05.323 回答