如何在C#中的Outlook 365桌面应用程序中启动新的电子邮件对话框?

如何在C#中的Outlook 365桌面应用程序中启动新的电子邮件对话框?,c#,outlook,interop,C#,Outlook,Interop,我正在寻找一种方法,在Outlook 365中打开一个新的电子邮件对话框,其中预先填充了主题、HTML内容、附件和联系人(收件人、发件人等)。我希望能够用代码打开对话框,等待用户单击“发送”或关闭窗口,并检测他们是否确实发送了电子邮件或关闭了窗口。我以前可以通过Outlook 2013 Interop实现这一点,但就我的一生而言,我似乎无法在任何地方找到“Outlook 365 Interop”来使用 为了澄清,我不想只为他们发送电子邮件,我想为他们打开预填充的窗口,并检测他们是否选择在Outl

我正在寻找一种方法,在Outlook 365中打开一个新的电子邮件对话框,其中预先填充了主题、HTML内容、附件和联系人(收件人、发件人等)。我希望能够用代码打开对话框,等待用户单击“发送”或关闭窗口,并检测他们是否确实发送了电子邮件或关闭了窗口。我以前可以通过Outlook 2013 Interop实现这一点,但就我的一生而言,我似乎无法在任何地方找到“Outlook 365 Interop”来使用

为了澄清,我不想只为他们发送电子邮件,我想为他们打开预填充的窗口,并检测他们是否选择在Outlook桌面电子邮件客户端中发送邮件


Outlook 365产品是否有互操作,如果有,在哪里可以找到?因为我在任何地方都找不到对Outlook 365互操作的引用。

您可以创建一个集成回主应用程序的。如果插件位于受控环境中,则可以将其部署到办公室中的所有用户。如果需要,您还可以创建Outlook web加载项。

我最终为自己找到了答案。我使用VoidTools的app Everything查找最新版本Outlook PIA的位置:

我手动将其作为COM程序集引用添加到我的应用程序中。在我的例子中,它位于“C:\ProgramFiles(x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Outlook.dll”。然后我必须做以下几件事:

            Microsoft.Office.Interop.Outlook.Application outlookApp = 
                (Microsoft.Office.Interop.Outlook.Application)Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application"));
            Microsoft.Office.Interop.Outlook.MailItem mailItem = outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
            mailItem.Display(true);
现在它开始工作了!我可以在这里使用我已经习惯的良好的旧Outlook互操作,但要想让它工作起来真是一件痛苦的事情!我不知道为什么微软似乎在他们的网站上“隐藏”这个互操作和对它的任何引用


虽然我的问题由于某种原因被否决了,但我不打算删除它,因为其他人可能会遇到同样的问题。如果我忘了的话,我以后可能需要再次提及这一点。这在Outlook 365桌面应用程序上确实有效

您是否能够使用浏览器和?这可能更简单。Outlook interop是一组必须安装的.NET库。对于2013年,您可能需要安装了Office工具的VS 2013/2015,但不确定VS 2017/2019是否仍有这些模板。@gunr2171不是仅限于客户端的默认邮件程序吗?@Taco it,但我希望OP在一个工作环境中使用此Outlook修改,这样他们可以控制计算机的默认邮件程序。@gunr2171否,因为我需要知道他们是否真的发送了邮件。