Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取Outlook日历邮件_C# - Fatal编程技术网

C# 获取Outlook日历邮件

C# 获取Outlook日历邮件,c#,C#,在我的收件箱中有一些日历邮件(来自日历的会议请求)。当应用程序从收件箱获取日历邮件的邮件时,会抛出以下错误: 无法将“System.\u ComObject”类型的COM对象强制转换为接口 键入“Microsoft.Office.Interop.Outlook.MailItem”。这次手术 失败,因为对的COM组件的QueryInterface调用失败 与IID“{00063034-0000-0000-C000-0000000000 46}”的接口由于以下原因失败 导致以下错误:不支持此类接口(

在我的收件箱中有一些日历邮件(来自日历的会议请求)。当应用程序从收件箱获取日历邮件的邮件时,会抛出以下错误:

无法将“System.\u ComObject”类型的COM对象强制转换为接口 键入“Microsoft.Office.Interop.Outlook.MailItem”。这次手术 失败,因为对的COM组件的QueryInterface调用失败 与IID“{00063034-0000-0000-C000-0000000000 46}”的接口由于以下原因失败 导致以下错误:不支持此类接口(来自 HRESULT:0x80004002(E_NOINTERFACE))


您正在铸造的项目可能是不同类型的-ContactItem、AppointmentItem、MeetingItem、TaskItem。检查类型,然后强制转换并使用它


-Vimal

如果您可以发布一些代码,那会有所帮助:)。您使用的是exchange web服务吗?您使用的COM引用似乎没有在该计算机上注册。没有。实际上,我是基于C将outlook电子邮件导入到我的项目中的。通常,如果没有与日历相关的电子邮件,则会成功导入电子邮件提醒…但当属于任何calander提醒的电子邮件(Inboxitems中的Outlook.MailItem邮件)发出eror..ok Ahmed ilyas请指导我如何注册COM参考…虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。
public void GetOutLookEmails()
{ 
      oApp = new Outlook.Application();
      oNS = oApp.GetNamespace("MAPI");

      foreach (Outlook.MAPIFolder folder in oNS.Folders)
      {
          GetFolders(folder);
      }
}

public void GetFolders(Outlook.MAPIFolder folder)
{
    if (folder.Folders.Count == 0)
    {
        try
        {
            if (folder.DefaultItemType == Outlook.OlItemType.olMailItem)
            {
                if (folder.Name == "Inbox")
                {
                    oEmailsFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
                    Outlook.Items Inboxitems = oEmailsFolder.Items;

                    if (Inboxitems.Count > 0)
                    {
                        foreach (Outlook.MailItem mail in Inboxitems)///when compiler comes here it does not create mail object and throws error...because email contains calendar reminder so I guess I need to check if it is olCalendar event or something else that resolves error

                        {
                            if (mail != null)
                            {
                                 //here I am retrieving concerning data from emails///no issue here
                            }
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    else
    {
        foreach (Outlook.MAPIFolder subFolder in folder.Folders)
        {
            GetFolders(subFolder);
        }
    }
}