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

How Do I Start a New E-mail Dialogue Box Within Outlook 365 Desktop Application in C#?

我正在寻找一种在 Outlook 365 中打开新电子邮件对话框的方法,该对话框预先填充了主题、HTML 内容、附件和联系人(收件人、发件人等)。我希望能够在代码中打开对话框,等待用户单击发送或关闭 window,并检测他们是否实际发送了电子邮件或关闭了 window .我曾经能够使用 Outlook 2013 Interop 执行此操作,但就我的生活而言,我似乎无法在任何地方找到可使用的“Outlook 365 Interop”。

澄清一下,我不想只为他们发送电子邮件,我想为他们打开预先填充的 window,并检测他们是否选择发送他们的 Outlook 桌面电子邮件客户端中的消息。

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

您可以创建一个 Outlook VSTO Addin 集成回您的主应用程序。如果它处于受控环境中,您 add-in 可以部署到办公室中的所有用户。如果需要,您还可以创建 Outlook 网站 add-in.

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

我手动将其作为 COM 程序集引用添加到我的应用程序中。就我而言,它位于“C:\Program Files (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 Interop 工作,但是弄清楚如何让它工作是一件痛苦的事情!我不知道为什么 Microsoft 似乎要“隐藏”这个 Interop 以及他们网站上对它的任何引用!

虽然我的问题由于某种原因被否决了,但我不会删除它,因为其他人可能会遇到同样的问题。如果我忘记了,以后可能需要再次参考。这确实适用于 Outlook 365 桌面应用程序!