Microsoft.Office.Interop.Outlook使用物件通過 Outlook 發送電子郵件時會出現警告。有幾種解決方法可以禁用完整的安全警告。這不適用于我們的案例。其他選項似乎將協議設定為注冊表項。
因此,如果您添加這樣的密鑰,HKCU/SOFTWARE/Microsoft/Office/16.0/Common/Security/Trusted Protocols/All Applications/foo:那么來自 foo:// 協議的所有呼叫都是可信的,并且不會彈出警告。
我們使用這樣的代碼:
using Outlook = Microsoft.Office.Interop.Outlook;
Outlook.Application _outlook = new Outlook.Application();
Outlook.MailItemn _message = null;
...
_message = (Outlook.MailItem)_outlook.CreateItem(Outlook.OlItemType.olMailItem);
Outlook.Recipients recipients = _message.Recipients;
if (!string.IsNullOrEmpty(MailTo))
{
string[] mailToList = MailTo.Split(';');
foreach (string mailToEntry in mailToList)
{
Outlook.Recipient recipient = recipients.Add(mailToEntry.Trim());
recipient.Type = (int)Outlook.OlMailRecipientType.olTo;
recipient.Resolve();
}
}
foreach (MailAttachment attachment in Attachments)
{
string tempDir = TempDirectory.Create();
string tmpFile = Path.Combine(tempDir, attachment.Name);
File.WriteAllBytes(tmpFile, attachment.Data);
_message.Attachments.Add(tmpFile, (int)Outlook.OlAttachmentType.olByValue, 1, attachment.Name);
}
_message.Send();
至少以短路形式。我現在的問題是:“我如何在注冊表中將其定義為例外?”
也許可以創建類似的東西HKCU/SOFTWARE/Microsoft/Office/16.0/Common/Security/Trusted Protocols/MyApp/http:?
這不起作用,因為使用的協議似乎不是 http。有人知道這里使用的是哪一個,也許如何更改名稱以便我們可以在例外設定中使用它?
有人有想法嗎?
uj5u.com熱心網友回復:
協議處理程式和通過 OOM 發送電子郵件沒有任何共同點。有幾種方法可以抑制 Outlook 物件模型生成的安全提示:
使用第三方組件來抑制 Outlook 安全警告。有關詳細資訊,請參閱Microsoft Outlook 安全管理器。
使用低級 API 而不是 OOM - 不會觸發安全提示的擴展 MAPI。或者考慮使用圍繞該 API 的任何其他第三方包裝器,例如 Redemption。
開發一個可以訪問受信任的應用程式物件的 COM 加載項。然后使用標準 .Net 工具(遠程處理)從獨立應用程式與加載項進行通信。
使用組策略物件設定機器不觸發安全提示。
使用任何具有最新資料庫(最新)的防病毒軟體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/493397.html
上一篇:未初始化值和未定義值之間的差異
