我有一个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将显示安全警告消息
我只想获取电子邮件地址,仅此而已。有没有其他方法可以访问电子邮件地址而无需访问Outlook信息?
答案 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