是否有任何原因从Outlook帐户获取电子邮件地址而不触发安全警报?

时间:2014-01-09 11:10:55

标签: c# outlook add-in

我有一个Outlook插件,我必须获取当前帐户的电子邮件地址才能使其正常运行。我使用简单的Outlook应用程序并过滤现有的电子邮件以获取公司的电子邮件ID

    public static string getOutlookEmail()
    {
        Outlook.Application myApp = new Outlook.Application();
        Outlook.Accounts accounts = myApp.Session.Accounts;
        int count = accounts.Count;
        string mailID = null;

        for (int i = 1; i <= count; i++)
        {
           if (ifCompanyAccount(accounts[i].SmtpAddress.ToString();))
           {
               mailID = (accounts[i].SmtpAddress.ToString());
               i = count + 1;
               return mailID;
           }

           else 
           {
               return "No e-Mail";
           }
        }
     }

但是,在安装addIn并触发该功能后,outlook将显示安全警告消息

enter image description here

我只想获取电子邮件地址,仅此而已。有没有其他方法可以访问电子邮件地址而无需访问Outlook信息?

2 个答案:

答案 0 :(得分:2)

如果您的代码在Outlook插件中运行,只要您使用传递给插件的Outlook.Application对象而不是创建新实例,它就不会受到安全提示的约束。

请勿在COM插件中使用新的new Outlook.Application()

您还可以使用Redemption(从不显示安全提示)及其RDOSession.Accounts集合。

答案 1 :(得分:0)

我认为这对我的问题起了作用,首先我不能在行this.Application.Session.CurrentUser.AddressEntr中使用(这个)

但我用这种方式

Outlook.Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
Outlook.Accounts accounts = explorer.Session.Accounts;

要获取帐户信息,我基本上没有像Dmitry首先建议的那样创建新的Outlook.Application