从C#程序读取Outlook消息时如何避免Outlook安全警报

我要求从我的Outlook收件箱中读取C#程序中的主题,发件人地址和新邮件的邮件正文。 但我收到安全警报’程序正在尝试访问您存储在Outlook中的电子邮件地址。 你想允许这个吗?

通过一些谷歌搜索我发现很少有第三方COM库来避免这种情况。 但我正在寻找一个不需要任何第三方COM库的解决方案。

抱歉,我在Outlook 2003和Outlook 2007加载项中都遇到了这个恼人的问题,唯一有效的解决方案是购买Redemption许可证。 在Outlook 2007中,如果您的防火墙已关闭,或者您的防病毒软件已经过时,那么只会出现讨厌的弹出窗口。

我在访问Outlook邮件项目的发件人电子邮件地址时遇到了同样的问题。 要避免“安全警报”,请不要创建新的Application对象,而是使用Globals.ThisAddIn.Application来创建新的mailitem。

 string GetSenderEmail(Outlook.MailItem item) { string emailAddress = ""; if (item.SenderEmailType == "EX") { Outlook.MailItem tempItem = (Outlook.MailItem)Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem); tempItem.To = item.SenderEmailAddress; emailAddress = tempItem.Recipients[1].AddressEntry.GetExchangeUser().PrimarySmtpAddress.Trim(); } else { emailAddress = item.SenderEmailAddress.Trim(); } return emailAddress; } 

试试这个

工具 – >宏 – >安全 – >程序访问

然后选择从不警告我可疑活动。

“但我正在寻找一种不需要任何第三方COM库的解决方案。”

你找不到它。 卡斯帕已经指出了我所知道的唯一解决方案。 Redemption是使Outlook插件和代码保持工作的唯一因素。 我为Franklin Covey做过商业Outlook加载项。 我们探索了很多东西,但救赎是让我们克服这个障碍的唯一因素。

如果您的应用程序不是Outlook插件,您可以查看MAPI以从收件箱中读取数据

我们使用Mapilab的Advanced Security for Outlook进行此操作。 它是免费的,也用于商业用途,并且仍然保持Outlook安全(仅允许从批准的应用程序访问)。 刚刚提到以前提到的解决方案,这些解决方案要么花钱,要么可能危及安全。

您可以使用Outlook的信任中心禁用安全性弹出窗口。 点击这里