没有意义的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._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
与这个:Outlook.MailItem oMailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem);
同样,如果这段代码在外接程序中,则不需要创建Outlook的新实例。应用程序-使用传递给OnConnection事件的对象