15

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

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

4

7 回答 7

15

我在访问 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;
    }
于 2009-07-28T22:55:23.193 回答
10

抱歉,我在 Outlook 2003 和 Outlook 2007 加载项中都遇到了这个烦人的问题,唯一有效的解决方案是购买兑换许可证。据我所知,在 Outlook 2007 中,只有当您的防火墙已关闭或您的防病毒软件已过时,才会出现令人讨厌的弹出窗口。

于 2008-10-24T21:14:09.810 回答
5

试试这个

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

然后选择从不就可疑活动向我发出警告。

于 2009-05-02T02:56:49.727 回答
3

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

你不会找到它。Kasper 已经指出了我所知道的唯一解决方案。赎回是保持 Outlook 插件和代码正常工作的唯一方法。我为富兰克林柯维做过商业 Outlook 插件。我们探索了很多东西,但救赎是唯一让我们克服这一障碍的东西。

于 2009-05-02T03:05:06.790 回答
1

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

于 2008-10-24T21:53:25.287 回答
1

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

于 2009-10-12T17:44:08.163 回答
0

您可以使用 Outlook 的信任中心禁用安全弹出窗口。在这里检查。

于 2009-10-20T17:02:00.853 回答