首页 > 解决方案 > 如何在 C# 中的 Outlook 365 桌面应用程序中启动新的电子邮件对话框?

问题描述

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

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

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

标签: c#outlookinterop

解决方案


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

Everything App 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 从这里开始工作,但是弄清楚如何让它工作很痛苦!我不知道为什么微软似乎在“隐藏”这个 Interop 以及他们网站上对它的任何引用!

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


推荐阅读