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

时间:2015-05-06 06:56:30

标签: java email outlook javamail exchangewebservices

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

我基本上需要的是:

用户名:" abcxqz"

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

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

2 个答案:

答案 0 :(得分:0)

您使用的是什么代码?你能更具体一点吗?

您可以使用ExchangeService.ResolveName EWS托管API方法或ResolveNames EWS操作返回选定文本的潜在匹配列表,例如姓氏的一部分。返回的项目可以是公共用户邮箱,通讯组和联系人。

// 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

答案 1 :(得分:0)

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());
    } 
}

}