问题描述
我的搜索功能很弱,我正在寻找一种在Outlook 365中打开一个新电子邮件对话框的方法,该对话框预先填充了主题,HTML内容,附件和联系人(收件人,发件人等)。 )。我希望能够打开代码中的对话框,等待用户单击“发送”或关闭窗口,并检测他们是否实际发送了电子邮件或关闭了窗口。我曾经能够使用Outlook 2013 Interop来做到这一点,但是对于我一生来说,我似乎找不到任何可以使用的“ Outlook 365 Interop”。
为澄清起见,我不想只是给他们发送电子邮件,我想为他们打开一个预先填充了电子邮件的窗口,并检测他们是否选择在Outlook桌面中发送邮件电子邮件客户端。
这在当今时代如何实现?
解决方法
您可以创建一个Outlook VSTO Addin并将其集成回您的主应用程序。如果在受控环境中,则可以将外接程序部署到办公室中的所有用户。如果需要,您还可以创建Outlook Web加载项。
,我最终为自己找到了答案。我使用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桌面应用程序上工作!