0

我有一个与 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(参见此处)。我的主要问题是:我可以只注册和 foobar.exetrustedaddins还是根本不可能?我知道我可以降低或禁用安全性,但这不是我的选择;)

4

1 回答 1

0

在从 VBScript 发送 Outlook 消息时如何避免 Outlook 安全警报中列出了您唯一的选项?

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

于 2020-09-08T22:26:14.483 回答