从用户名 outlook java 获取电子邮件地址

get email address from username outlook java

我需要通过 JAVA 获取 outlook 中特定用户名对应的电子邮件地址。 我尝试深入研究 Microsoft Exchange Web 服务 API,但找不到任何有用的东西。我唯一的微弱希望是, resolveNames() 方法,但事实证明这是一条死胡同。 有没有人知道如何去做?

我基本上需要的是这个:

用户名:"abcxqz"

当我们在 outlook 上执行 Ctrl + k 时,它会给出相应的联系人或电子邮件地址。

我需要在代码 (JAVA) 中模拟相同的功能。 任何指向 API 的指针或链接都可以帮助我实现这一目标,我们将不胜感激。 干杯

您具体使用什么代码?能具体点吗?

您可以使用 ExchangeService.ResolveName EWS Managed API method or the ResolveNames EWS 操作来 return 可能匹配文本选择的列表,例如姓氏的一部分。 returned 项目可以是 public 用户邮箱、通讯组和联系人。

// Resolve the ambiguous name "dan".
NameResolutionCollection resolvedNames = service.ResolveName("dan");
// Output the list of candidates.
foreach (NameResolution nameRes in resolvedNames)
{
   Console.WriteLine("Contact name: " + nameRes.Mailbox.Name);
   Console.WriteLine("Contact e-mail address: " + nameRes.Mailbox.Address);
   Console.WriteLine("Mailbox type: " + nameRes.Mailbox.MailboxType);
}

有关详细信息,请参阅 How to: Resolve ambiguous names by using EWS in Exchange 2013

public void getEmailId() throws Exception {
    init();
    NameResolutionCollection nameResults = exchangeService.resolveName("royran");
    Map<String, String> results = new TreeMap<String, String>();
    for (NameResolution name : nameResults) {
        String contactName = name.getMailbox().getName();
        String emailAddress = name.getMailbox().getAddress();
        results.put(contactName, emailAddress);
    }

    for (Map.Entry<String, String> entry : results.entrySet())
    { 
        System.out.println(entry.getKey() + "/" + entry.getValue());
    } 
}

}