如何信任访问Outlook对象模型的外部应用程序启用了所有安全性选项

问题描述

我有一个与Outlook交互的.NET应用程序,如下所示:

                Microsoft.Office.Interop.outlook.application app = new
              Microsoft.Office.Interop.outlook.application();
                Microsoft.Office.Interop.Outlook.MailItem item = app.CreateItem((Microsoft.Office.Interop.Outlook.OlItemType.olMailItem));
                item.PropertyAccessor.SetProperty(PsInternetHeaders + Foobar,1031);
                item.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
                item.To = "a@test.com;b@test.com;c@test.com";
                item.BCC = "cc@test.com";
                item.Body = "Hello There!";
                item.display();

请注意,我需要访问“ PropertyAccessor”属性

在正常环境中,它运行良好,但是在具有此注册表项的“安全”环境中,它仅会失败并显示Operation aborted (Exception from HRESULT: 0x80004004 (E_ABORT))

[HKEY_CURRENT_USER\Software\Policies\Microsoft\office\16.0\outlook\security]
"PromptOOMAddressBookAccess"=dword:00000000
"AdminSecurityMode"=dword:00000003
"PromptOOMAddressinformationAccess"=dword:00000000

Outlooks安全模型似乎有一个“ trustedaddins”列表,但是我不确定这是否也适用于“外部应用程序”,并且我不确定我是否需要注册TrustedAddins(请参阅{{3 }}。 我的主要问题是:是否可以在trustedaddins注册注册foobar.exe还是根本不可能? 我知道我可以降低或禁用安全性内容,但这不是我的选择;)

解决方法

您唯一的选项列在How to avoid Outlook Security Alert when sending Outlook message from VBScript?

您可能还想将PsInternetHeaders属性设置为仅字符串,而不是整数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...