Xpages从lotus获取邮件文件

Xpages从lotus获取邮件文件,xpages,lotus-notes,Xpages,Lotus Notes,有没有办法从(公司)目录中获取邮件文件字段的值?我编写了一个代码来获取值,但它在所有情况下都不相同。 代码如下: var firstChar = context.getUser().getFullName().charAt(0); var lastWord = context.getUser().getFullName().split(" ").pop(); var str = firstChar+lastWord; var str2 = str.slice(0, 8); var link

有没有办法从(公司)目录中获取邮件文件字段的值?我编写了一个代码来获取值,但它在所有情况下都不相同。 代码如下:

var firstChar = context.getUser().getFullName().charAt(0);
var lastWord = context.getUser().getFullName().split(" ").pop();

var str = firstChar+lastWord;
var str2 = str.slice(0, 8);

var link = "https://server/mail/";
link +=str2+".nsf/iNotes/Mail/?OpenDocument&ui=portal";
return link;

您可以像访问任何其他Notes数据库一样访问服务器目录。除非有其他地址簿,否则用户应该在“($Users)”视图中的用户名下存在。从那里您可以检索邮件文件和服务器。如果它与当前服务器不同,您可能需要检查相关服务器文档中的主机名。

借用NotesDirectory类文档中的一个示例,并根据您的需要进行修改,我会尝试以下操作:

var mynotesdir:NotesDirectory = session.getDirectory("server name");        
var homeserver =  mynotesdir.GetMailInfo("Joe Smith", True);

var mailFileName = homeserver[3];
var link = "https://server/mail/" + mailFileName + "/iNotes/Mail/?OpenDocument&ui=portal";
return link;

语法可能是错误的,因为我从一个示例中复制了它,并在这里而不是在Designer中对其进行了修改,但这应该仍然是一个良好的开端。…

使用@DbColumn(@DbName(),“$Users”,x)??或者如何使用?最好使用session.getDatabase()等您最好使用NotesDirectory类的LookupNames方法,以避免可能出现的多个通讯簿问题。(我不是一个xPages的人,所以我假设这个类不知何故暴露在那里。)是的,它应该是可用的。所有LotusScript方法都可以在Java/SSJS中使用