我需要通过JAVA获取与outlook中特定用户名相对应的电子邮件地址。 我已经尝试深入研究microsoft exchange webservices API,但是找不到任何有用的东西。我唯一的微弱希望是, resolveNames()方法,但事实证明这是一个死胡同。 有没有人知道如何去做?
我基本上需要的是:
用户名:" abcxqz"
当我们在outlook上执行 Ctrl + k 时,会提供相应的联系人或电子邮件地址。
我需要在代码中模拟相同的功能(JAVA)。 任何可以帮助我实现这一目标的API的指针或链接都将非常感激。 干杯
答案 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());
}
}
}