没有意义的Outlook异常

本文关键字:异常 Outlook 有意义 | 更新日期: 2023-09-27 18:02:29

使用Outlook 2010,我在调试

时得到这个错误

无法强制转换类型为"Microsoft.Office.Interop.Outlook。ApplicationClass'到接口类型"Microsoft.Office.Interop.Outlook._Application"。操作失败因为COM组件上的QueryInterface调用

    public void sendEMailThroughOUTLOOK()
    {
        try
        {
            String address = "john.doe@contoso.com";
            Outlook.Application oApp = new Outlook.Application();
            Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem); // CRASHING HERE
            oMailItem.To = address;
            oMailItem.Subject = "Status Update on " + DateTime.Now.ToString("M/d/yyyy");
            oMailItem.BodyFormat = Outlook.OlBodyFormat.olFormatPlain;                
            oMailItem.Body = createEmailBody();
            // body, bcc etc...
            oMailItem.Display(true);
        }//end of try block
        catch (Exception ex)
        {
            Console.WriteLine(ex.InnerException.ToString());
        }//end of catch
    }

这个代码在Outlook 2013上工作得很好。但是,当使用Outlook 2010时,它总是崩溃。

我降级了互操作。Outlook从15到14

没有意义的Outlook异常

我认为你需要替换这个:

Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
与这个:

Outlook.MailItem oMailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem);

同样,如果这段代码在外接程序中,则不需要创建Outlook的新实例。应用程序-使用传递给OnConnection事件的对象