我有一个java Web服务。基础注释db的表单具有“names”类型的字段。定义的视图包含所有这些名称的列表。在Web服务中,定义了一个函数,返回该人的电子邮件地址,并给出其名称。我们最近将我们的电子邮件从LotusNotes迁移到outlook,因此我们需要此例程以标准smtp格式(jdoe@domain.com)而不是规范格式返回电子邮件地址。目前的代码如下:
public String getSalespersonCommonName(String salesperson)抛出异常{
try
{
View salespersonView;
DocumentCollection docs;
d = s.getCurrentDatabase();
if (d != null) {
// get the salesperson
salespersonView = d.getView("vAllSalespersons");
docs = salespersonView.getAllDocumentsByKey(salesperson);
if (docs.getCount() > 0)
{
doc = docs.getFirstDocument();
return doc.getItemValueString("Salesperson");
} else {
return "";
}
} else {
return "";
}
} catch (Exception e) {
throw e;
}
}
答案 0 :(得分:2)
您需要在Domino目录中按名称查找用户,并从那里获取SMTP地址。 Directory.LookupNames()方法是"官方"这样做的方法,因为它可以自动使用多个目录,但我已经看到很多实现直接访问names.nsf中的视图。
但首先,您必须确保用户的Outlook SMTP地址实际上已输入Domino目录,并且您必须知道它已输入的字段。如果Outlook SMTP地址与其旧的Domino SMTP地址不同,则在转发地址字段中输入Outlook地址是相当常见的做法。