繁体   English   中英

使用 outlook api 打开电子邮件时引发错误

[英]Error thrown when opening e-mails using outlook api

问题:使用 Outlook API 打开看似有效的 MSG 文件时,我收到以下错误消息:

无法将类型为“System.__ComObject”的 COM object 转换为接口类型“Microsoft.Office.Interop.Outlook.MailItem”。 此操作失败,因为对 IID 为“{00063034-0000-0000-C000-000000000046}”的接口的 COM 组件的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOFACE)) .

MSG 文件在 outlook 中打开正常,我确信 forms 是标准 outlook 邮件 ZAC68B62ABFD6A9FE26E8AC42C

此错误的最可能原因是什么?


背景:我的一位同事从 Exchange 中将大量邮箱导出为 PST,然后针对 PST 文件运行一个工具,以生成类似于填充了 .MSG 文件的原始邮箱的文件结构。 例如:

\用户名
\用户名\收件箱
\用户名\发送
\用户名\草稿
\用户名\已删除

然后我扫描这些文件夹中的 .MSG 文件并尝试使用 Outlook API 打开它们。

Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();

Outlook.NameSpace ns = app.GetNamespace("MAPI");

Outlook.MailItem item = (Outlook.MailItem)ns.OpenSharedItem(EmailPath);

Subject = item.Subject;

OOM 中的所有 *Item 对象都实现了 Type 属性。 使用反射动态检索该属性,而不是将返回的 object 转换为 MailItem。

好的,使用“as”运算符来测试您感兴趣的接口而不引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM