我编写了这段代码来查看 Outlook 邮箱中的未读邮件,代码如下:
Microsoft.Office.Interop.Outlook.Application app;
Microsoft.Office.Interop.Outlook.Items items;
Microsoft.Office.Interop.Outlook.NameSpace ns;
Microsoft.Office.Interop.Outlook.MAPIFolder inbox;
Microsoft.Office.Interop.Outlook.Application application = new Microsoft.Office.Interop.Outlook.Application();
app = application;
ns = application.Session;
inbox = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
items = inbox.Items;
foreach (Microsoft.Office.Interop.Outlook.MailItem mail in items)
{
if (mail.UnRead == true)
{
MessageBox.Show(mail.Subject.ToString());
}
}
但在 foreach 循环中我收到此错误:
“无法将类型为“System.__ComObject”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Outlook.MailItem”。此操作失败,因为对 IID 为“{00063034-0000-”的接口的 COM 组件上的 QueryInterface 调用0000-C000-000000000046}' 由于以下错误而失败:不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))。”
您能帮我解决这个错误吗?
不久前我不得不解决像你这样的问题。
foreach (Object _obj in _explorer.CurrentFolder.Items)
{
if (_obj is MailItem)
{
MyMailHandler((MailItem)_obj);
}
}
希望有帮助。
这里的问题是_explorer.CurrentFolder.Items
可以包含更多的对象MailItem
(PostItem
成为其中之一)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)