如何返回与登录用户的当前Outlook配置文件关联的主电子邮件地址?

时间:2009-12-06 08:31:42

标签: vb.net outlook outlook-2007

我知道,要求查询告诉我自己的电子邮件地址是有点奇怪的,我会进一步解释......

我正在为Outlook 2007编写一个COM加载项。其中一个子组生成并向特定地址发送电子邮件,这一切都正常。 但是,我需要有一个选项让发件人能够将自己包含在收件人列表中。 由于不止一个人将运行此功能,我不能手动设置发件人的电子邮件地址,而只是在表单上添加一个复选框以启用此功能。

我坚持的唯一一点就是找出如何找到发送电子邮件的人的电子邮件地址。我可以使用针对登录用户的AD查询来执行此操作,但这也需要适用于非域用户,因此需要另一种方法。

更简洁地说:使用VB,如何返回与登录用户当前的Outlook个人资料相关联的主电子邮件地址?

3 个答案:

答案 0 :(得分:5)

Application.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress

RDOSession.CurrentUser.SmtpAddress

答案 1 :(得分:0)

使用属性访问器查看mapi属性

如果帐户类型为EX, PR_SMTP_ADDRESS或它DASL“http://schemas.microsoft.com/mapi/proptag/0x39FE001E

虽然再次向您提问,但有些帐户是非交易所?

马库斯

答案 2 :(得分:0)

如果您使用Outlook Redemption,那么@ bugtussle的解决方案可以正常工作,但您必须先通过Redemption登录。由于Redemption文档非常糟糕,这里有完整的代码对我有用:

RDOSession session = new RDOSession();
session.Logon(null, null, null, true, null, null);
string emailAddress = session.CurrentUser.SMTPAddress;
session.Logoff();
return emailAddress;