Outlook for Office365在发送前向用户显示邮件



我以前使用以下代码和引用创建给用户的电子邮件,并在发送之前弹出一个outlook消息窗口,允许用户在发送之前更改电子邮件。。。

参考

using Outlook = Microsoft.Office.Interop.Outlook; //v15.0.0.0

代码段

public static void SendEmail(string To, string CC, string Subject, string Body)
{
Outlook.Application app = new Outlook.Application();
Outlook.MailItem mail = (Outlook.MailItem)app.CreateItem(Outlook.OlItemType.olMailItem);

mail.Subject = Subject;
mail.To = To;
mail.CC = CC;
mail.Body = Body;
mail.Subject = Subject;

if (DisplayToUser) { mail.Display(true); } //<< Important
else { mail.Send(); }
}

最近在一些公司更新(升级outlook(后,此代码不再工作。我得到以下错误:

System.InvalidCastException:无法强制转换类型为的COM对象"Microsoft.Office.Interop.Outlook.ApplicationClass"转换为接口类型"Microsoft.Office.Interop.Outlook_Application"。此操作失败因为接口的COM组件上的QueryInterface调用IID"{00063001-0000-0000-C000-000000000046}"由于以下错误:找不到元素。(HRESULT中的异常:0x8002802B(TYPE_E_ELEMENTNOTFOUND((。在System.StubHelpers.StubHelpers.GetCOMIPFromRCW(对象objSrc,IntPtrpCPCMD,IntPtr&ppTarget,布尔型&pfNeedsRelease(Microsoft.Office.Interop.Outlook.ApplicationClass.CreateItem(OlItemTypeItemType((字符串To,String CC,String Subject,String Body,Boolean DisplayToUser,布尔CcUser(C: _data\MyCompany.MyApp\SourceCode Dev\MyComponey.MyApp\Classes\Email.cs:line17MyCompany.MyApp.Forms.FrmAbout.btnCommunicate_Click(对象发件人,EventArgs e(。。。。。。

我在谷歌上搜索了很多关于如何通过outlook发送SMTP电子邮件的例子,但似乎没有一个能让我像以前那样连接到outlook应用程序本身向用户显示电子邮件。

我还在Microsoft.Office365.OutlookServices NuGet包中搜索了一下,但没有找到类似的功能。

我从代码发送电子邮件没有问题,问题是无法使用用户安装的outlook应用程序向用户显示outlook消息窗口。

你知道这个功能是否仍然存在吗?如果仍然存在,在哪个库中找到它,或者如何找回它?

感谢

您似乎只需要更正代码中的声明部分:

public static void SendEmail(string To, string CC, string Subject, string Body)
{
Outlook._Application app = new Outlook._Application();
Outlook.MailItem mail = (Outlook.MailItem)app.CreateItem(Outlook.OlItemType.olMailItem);

mail.Subject = Subject;
mail.To = To;
mail.CC = CC;
mail.Body = Body;
mail.Subject = Subject;

if (DisplayToUser) { mail.Display(true); } //<< Important
else { mail.Send(); }
}

如果问题仍然存在,请尝试修复Office/Outlook安装。所需的windows注册表记录似乎已损坏。

最新更新