отправьте электронное письмо по адресу generi c ID в заметках лотоса с помощью notesFactory в java - PullRequest
0 голосов
/ 04 марта 2020

Это требование в проекте для отправки писем из приложения java через лотосные заметки.

Примечание: сервер домино установлен на клиентском сервере.

В настоящее время я могу отправлять электронную почту с помощью notesFactory на мой локальный компьютер. Используется файл notes.jar

, который обращается к пользователю по .nsf по его паролю.

Т.е. создание безопасного соединения по паролю. И получить объект базы данных, вызвав

Session.getdatabase (null, "user.nsf")

Он отлично работает.

Но для некоторых типов электронных писем клиент поделился универсальный c id ... (ссылка) по электронной почте ... При нажатии на эту ссылку почтовый ящик generi c открывается под активным пользователем. В отдельной вкладке ... С помощью которой мы можем отправлять электронные письма.

Но не поделились своим .nsf-путем, ни идентификатором, ни паролем.

Он открывается напрямую, нажав на эту ссылку.

Теперь я хочу получить доступ к этому универсальному c id в сеансе notesfactory

Я пытался держать этот идентификатор открытым и затем запускать свой код ... но все равно он отправляет электронную почту через самого активного пользователя.

И клиент не готов предоставить информацию об идентификаторе и пароле этого пользователя. На нашем локальном компьютере не генерируется файл идентификатора.

Можно ли как-нибудь отправлять электронные письма через этот идентификатор?

Если кому-то нужен код, который я использую ... все поделятся.

1 Ответ

2 голосов
/ 05 марта 2020

Но для некоторых типов электронных писем клиент имеет общий идентификатор ... (ссылка) по электронной почте ... При нажатии на эту ссылку почтовый ящик generi c открывается под активным пользователем. В отдельной вкладке ... Через которую мы можем отправлять электронные письма.

Это не похоже на «общий идентификатор», это больше похоже на почтовую базу данных с ACL, установленным для предоставления группе пользователей. доступ. Когда вы отправляете электронное письмо из Notes (неважно, через пользовательский интерфейс или через код), фактический вошедший в систему пользователь используется в качестве отправителя. Это сделано специально для того, чтобы пользователи не могли подделать отправителя.

Существует неподдерживаемый способ подделки адреса отправителя, путем перенаправления электронного письма непосредственно в mail.box, но это должен сделать только кто-то, кто знает что они делают.

Я несколько лет писал библиотеку сценариев go, предназначенную для отправки электронных писем. Включает в себя возможность установить адрес отправителя. Вы можете найти его в моем блоге , это бесплатно. Но я бы не рекомендовал вам использовать его без предварительного понимания того, что делает код.

Вот соответствующая часть кода:

   Set mailbox = New NotesDatabase(mailservername,"mail.box")
   If mailbox.Isopen = False Then
      Print "mail.box on " & mailservername & " could not be opened"
      Exit Sub
   End If
   Set me.maildoc = New NotesDocument(mailbox)
   Call me.maildoc.ReplaceItemValue("Form","Memo")
   Set me.body = New NotesRichTextItem(maildoc,"Body")
   Call maildoc.ReplaceItemValue("Principal", me.p_principal)
   ' If principal is set, we want to fix so mail looks like
   ' it is coming from that address, need to set these fields
   Call maildoc.ReplaceItemValue("From", me.p_principal)
   Call maildoc.ReplaceItemValue("Sender", me.p_principal)
   Call maildoc.ReplaceItemValue("ReplyTo", me.p_principal)
   Call maildoc.ReplaceItemValue("SMTPOriginator", me.p_principal)
   Call maildoc.ReplaceItemValue("PostedDate",Now())
   If me.p_principal<>"" Then
      Call maildoc.Save(True,False) ' Save in mail.box
   Else
      Call maildoc.Send(True)       ' Send mail normally
   End If   

Поле «Принципал» используется для установки адреса отправителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...