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

本文关键字:Outlook 何避免 安全 程序 读取 | 更新日期: 2023-09-27 17:48:53

我需要从C#程序中阅读Outlook收件箱中新邮件的主题、发件人地址和邮件正文。但我收到安全警报"一个程序正试图访问您存储在Outlook中的电子邮件地址。你想允许这样做吗。

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

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

我在访问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的信任中心禁用安全弹出窗口。请在此处查看。