Как да получите имейл идентификатор в [email protected] вместо CN= example/OU= Server/O=company в lotus notes в java

Здравейте, когато получа потребителското име от Domino Designer по посочения по-долу начин

    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    String userName=session.getUsername(); 
    system.out.println("UserName="+uesrName);

Получавам потребителското име във формат "CN= example/OU= Server/O=company", но искам да съм в обичайния формат като [email protected]. Може ли някой да ми каже как да го получа в Java. Има ли всеки друг подход за получаване на потребителското име в очаквания формат. Моля, помогнете. Би било чудесно, ако се предоставят някои препратки.


person Phoenix    schedule 14.03.2014    source източник


Отговори (1)


[email protected] НЕ е потребителско име, а имейл адрес (който може да се използва в полето за потребителско име за влизане в Webservices / traveler / ldap / и т.н., ако сървърът е конфигуриран съответно).

Има различни начини за получаване на имейл адрес за дадено потребителско име, като най-лесният може да бъде използването на Directory-Class и неговия метод "lookupNames".

Ето пример, взет от помощта на дизайнера:

  Session session = getSession();
  AgentContext agentContext = session.getAgentContext();
  Directory dir = session.getDirectory("NameOfYourServer");
  String userName=session.getUsername(); 
  DirEntryCollection direc = dir.lookupNames("($Users)",userName,"email");
  DirEntry dirent = direc.getFirstEntry()
  while (dirent != null) {
    String name = dirent.getItemValue("InternetAddress");
    System.out.println(InternetAddress);
    dirent = direc.getNextEntry(); }

Помощ за Designer може да бъде намерена на много места (локално инсталирана, ако Designer е инсталиран) или напр. тук

person Torsten Link    schedule 14.03.2014
comment
: пробвах както ти каза. Изгледът $Users изглежда се отнася до контактите в пощата. Така че, когато отпечатах стойностите на InternetAddress, получих стойността, която съм запазил, докато създавам контакта. Но имам нужда от картографирания имейл идентификатор за конкретно потребителско име.Можете ли да кажете как да получите имейл ID за съответното потребителско име. - person Phoenix; 14.03.2014
comment
Предайте името на вашия Domino сървър в метода getDirectory вместо null. - person Richard Schwartz; 14.03.2014
comment
Ако кодът се изпълнява на локална работна станция, тогава директорията, която получавате, е вашите лични имена.nsf. Само ако кодът се изпълнява на сървър, тогава получавате сървърна директория. ($Users) съдържа потребителски имена / имейл адреси във всички варианти... Редактирах кода, за да използвам адресната книга на сървъра.. Благодаря Ричард - person Torsten Link; 14.03.2014