从C#程序读取Outlook邮件时如何避免Outlook安全警报
本文关键字:Outlook 何避免 安全 程序 读取 | 更新日期: 2023-09-27 17:48:53
我需要从C#程序中阅读Outlook收件箱中新邮件的主题、发件人地址和邮件正文。但我收到安全警报"一个程序正试图访问您存储在Outlook中的电子邮件地址。你想允许这样做吗。
通过一些谷歌搜索,我发现很少有第三方COM库可以避免这种情况。但我正在寻找一个不需要任何第三方COM库的解决方案。
我在访问outlook邮件项目的发件人电子邮件地址时遇到了同样的问题。若要避免"安全警报",请不要创建新的应用程序对象,而是使用Globals.ThisAddIn.Application创建新邮件项。
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;
}
对不起,我在Outlook 2003和Outlook 2007加载项中都遇到了这个烦人的问题,唯一有效的解决方案是购买Redemption许可证。据我回忆,在Outlook2007中,只有当你的防火墙关闭或你的防病毒软件过时时,这个讨厌的弹出窗口才会出现。
试试这个
工具-->宏-->安全-->程序访问
然后选择"从不警告我可疑活动"。
"但是我正在寻找一个不需要任何第三方COM库的解决方案。"
你不会找到的。卡斯珀已经指出了我所知道的唯一解决方案。救赎是唯一能让Outlook插件和代码正常工作的东西。我为Franklin Covey做过商业Outlook插件。我们探索了很多东西,但救赎是唯一让我们克服这一障碍的东西。
如果您的应用程序不是Outlook插件,您可以查看MAPI从收件箱中读取数据
为此,我们使用Mapilab中的Outlook高级安全性。它是免费的,也可用于商业用途,并且仍然保持Outlook的安全(只允许从批准的应用程序访问)。刚才提到的解决方案要么花钱,要么可能危及安全。
您可以使用Outlook的信任中心禁用安全弹出窗口。请在此处查看。