我要求在C#程序的Outlook收件箱中阅读新邮件的主题,发件人地址和邮件正文。但我收到安全警报'程序正在尝试访问您存储在Outlook中的电子邮件地址。你想允许这个'。
通过一些谷歌搜索我发现很少有第三方COM库来避免这种情况。但我正在寻找一个不需要任何第三方COM库的解决方案。
答案 0 :(得分:15)
我在访问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;
}
答案 1 :(得分:10)
抱歉,我在Outlook 2003和Outlook 2007加载项中都遇到了这个恼人的问题,唯一有效的解决方案是购买Redemption许可证。在Outlook 2007中,如果您的防火墙关闭,或者您的防病毒软件已经过时,那么只会出现讨厌的弹出窗口。
答案 2 :(得分:5)
试试这个
工具 - >宏 - >安全性 - >程序化访问
然后选择从不警告我可疑活动。
答案 3 :(得分:3)
“但我正在寻找一种不需要任何第三方COM库的解决方案。”
你找不到它。卡斯帕已经指出了我所知道的唯一解决方案。 Redemption是使Outlook插件和代码保持工作的唯一因素。我为Franklin Covey做了商业Outlook加载项。我们探索了很多东西,但救赎是让我们克服这个障碍的唯一因素。
答案 4 :(得分:1)
如果您的应用程序不是Outlook插件,您可以查看MAPI以从收件箱中读取数据
答案 5 :(得分:1)
我们使用Mapilab的Advanced Security for Outlook来实现此目的。它是免费的,也用于商业用途,并且仍然保持Outlook安全(仅允许从批准的应用程序访问)。刚刚提到以前提到的解决方案,既要花钱,要么可能危及安全性。
答案 6 :(得分:0)
您可以使用Outlook的信任中心禁用安全性弹出窗口。 检查here。