2

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

我正在为 Outlook 2007 编写一个 COM 加载项。其中一个潜艇会生成电子邮件并将其发送到特定地址,这一切都很好。但是,我需要为发件人提供一个选项,以便能够将自己包含在收件人列表中。由于不止一个人将运行此功能,因此我不能仅手动设置发件人的电子邮件地址,而是希望仅在表单上添加一个复选框以启用此功能。

我唯一坚持的是如何找到发送电子邮件的人的电子邮件地址。我可以通过针对登录用户的 AD 查询来做到这一点,但这需要对非域用户也有效,因此需要另一种方法。

更简洁地说:使用 VB,我如何返回与登录用户当前 Outlook 配置文件关联的主电子邮件地址?

4

3 回答 3

5

Application.Session.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
或者
RDOSession.CurrentUser.SmtpAddress

于 2009-12-15T20:02:50.520 回答
0

看看使用属性访问器获取 mapi 属性

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

尽管再次阅读您的问题,但有些帐户不是 Exchange 吗?

马库斯

于 2009-12-07T18:44:15.723 回答
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;
于 2011-08-15T04:06:50.173 回答