Lotusscript: с адреса при отправке электронной почты как веб-пользователь

У меня есть агент lotus-script, который работает как веб-пользователь, так как мне нужно знать, кто является текущим пользователем, и обрабатывать информацию соответствующим образом. Проблема в том, что при отправке электронного письма этому агенту адрес электронной почты От показывает адрес электронной почты веб-пользователя, а не тот, который я определил. Я настраиваю следующие поля перед отправкой электронного письма (как mime):

    mailDoc.Form = "Memo"
    mailDoc.Subject = strSubject
    mailDoc.InetSendTo = strFrom
    mailDoc.PostedDate = Now
    mailDoc.Principal = strFrom
    mailDoc.FROM = strFrom
    mailDoc.INETFROM = strFrom
    mailDoc.~INetPrincipal = strFrom
    mailDoc.ReplyTo = strFrom
    mailDoc.SendFrom = strFrom
    mailDoc.SentBy = strFrom
    mailDoc.altFrom = strFrom
    mailDoc.tmpDisplaySentBy = strFrom
    mailDoc.DisplaySent = strFrom
    mailDoc.ToShow = strFrom

    mailDoc.SendTo = strSendTo

Но все же адрес отправителя отображается как адрес веб-пользователя. Что мне здесь не хватает? Любая помощь могла бы быть полезна.

Ответы на вопрос(6)

Решение Вопроса

но имя реального отправителя, вероятно, будет видно под водой. На самом деле, существует другое решение: создавать почту прямо в базе данных mail.box. Это то, что шаблон TeamMail делает в OpenNTF. Увидетьhttp://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Team%20Mail%20Tamer

Конечно, это НЕ правильный путь, но если вы хотите запутать отправителя, другого решения не существует.

Ну, технически это не совсем так: вы можете создать DLL-библиотеку Extension Manager, которая изменит отправителя ... Грязно, говорите? Конечно.

 pipalia16 нояб. 2012 г., 21:21
Вы правы - хотя это не очень хорошо видно, если вы посмотрите на информацию заголовка электронного письма, вам станет ясно, откуда пришло электронное письмо. Таким образом, оригинальный отправитель (разработчик / администратор, который подписал этого агента) все еще отображается в заголовке !!
 pipalia21 мая 2012 г., 12:15
Если мы также меняем адрес ответа и электронные письма отправляются внешнему почтовому клиенту, отличному от Notes, как реальный адрес все еще будет виден - уточните. Спасибо Д.Баггер.
 22 мая 2012 г., 13:54
AFAIK, вы не можете переопределить From, это задается задачей Router. Если я правильно помню, в источнике почты всегда есть след от имени исходного отправителя (От). Он может не отображаться используемым почтовым клиентом. Отказ от ответственности ... Я могу ошибаться, конечно. ;-)
 pipalia22 мая 2012 г., 14:26
Хорошо, я попробую и буду держать вас в курсе - спасибо.

просматривая форумы, я нашел решение этой старой проблемы (http://www-10.lotus.com/ldd/nd6forum.nsf/0/13706561dc7d693f852570af0062fcec?OpenDocument):

Principle = "[email protected]"
maildoc.Form = "Memo"
' Principal overrides From
' Must be formatted as below and must include the domain @xyz.com
' Format should equal: "From User" <[email protected]@DOMAIN>
maildoc.Principal = |"Customer Service" <| + Principle + |@xyz.com>|
maildoc.From = Principle
maildoc.AltFrom = Principle
maildoc.SendFrom = Principle
maildoc.INetFrom = Principle
maildoc.tmpDisplaySentBy = Principle
maildoc.tmpDisplayFrom_Preview = Principle
maildoc.DisplaySent = Principle

Надеюсь, что это помогает другим людям - это было проблемой для меня в течение очень долгого времени!

 pipalia27 мар. 2013 г., 17:44
Вы правы, Кен - мы обнаружили, что добавлять почту в mail.box было намного лучше, чем делать это!
 21 мая 2012 г., 16:02
Если вы посмотрите на заголовок письма, действительно ли это показывает, что письмо пришло с [email protected]? Например, попробуйте протестировать его с учетной записью Gmail и найти любой след, который был отправлен от другого пользователя. Я полагаю, что это имело место в прошлом (но это было несколько лет ...)

информацию об отправителе через LotusScript. Единственный способ контролировать это - установитьRun on behalf of свойство агента для пользователя, от которого должно появиться письмо. Однако вы должны установить это, используя конструктор, и вы не можете изменить его во время выполнения.

Трудно сказать по вашему вопросу, но если вы попробовали это и обнаружили, что настройка веб-пользователя переопределяет "от имени" от имени ". В этом случае вы можете попытаться разделить создание электронной почты на второго агента, а затем запустить этот второй агент не как веб-пользователь.

Надеюсь это поможет!

 12 июн. 2014 г., 17:43
@ Алексей Зимарев Нет, настройка «Принципал»; не решит проблему, «Отправлено»; значение появится, если два адреса / идентификатора отличаются, как обсуждалось в этой теме.
 31 мая 2013 г., 17:11
Это не правильно. Правильное задание основного поля (включая почтовый домен Domino) решает проблему.
 pipalia20 мая 2012 г., 22:37
Большое спасибо Кену, именно это я и думал, но потом я только нашел решение на форумах - я опубликую его как ответ.

если вы не создадите почту в mail.box, исходный отправитель всегда будет виден. Это часть безопасности Notes / Domino.

В прошлом году я разместил код в своем блоге, где вы можете увидеть, как это сделать: http://blog.texasswede.com/lotusscript-mail-notification-class/

 pipalia16 нояб. 2012 г., 21:21
Большое спасибо за то, что поделились этим, это очень интересное решение.

В моем случае (отправка уведомлений по электронной почте пользователям вне сервера Domino из стандартного почтового ящика, например, [email protected]), мне нужно всего лишь добавить следующую строку в документ memo: & quot; INetFrom & quot; и поместить туда адрес.

Таким образом, даже если посмотреть на источник почты (в учетной записи gmail), я вижу только человека, который упоминается в & quot; INetFrom & quot; поле!

Итак, окончательный код выглядит так (XPages SSJS):

try {
    var memo:NotesDocument = database.createDocument();
    memo.appendItemValue("Form", "Memo");
    memo.appendItemValue("Subject", "Subject text");
    memo.appendItemValue("Body", "Body text");
    memo.appendItemValue("SendTo", "userName");
    memo.appendItemValue("INetFrom", "[email protected]");
    memo.send(); 
}catch (e){
    print ("Send Error: " + e);
}
 pipalia25 мая 2013 г., 10:02
Мы приветствуем вас, хотя, как и другие рекомендовали, я бы добавил почту непосредственно в mail.box, если вы не хотите, чтобы ваша почта попала в папку спама.

что вы не установили поле Принципал правильно. Он должен содержать @NotesDomain, где NotesDomain - ваш почтовый домен Domino.

Я делаю это так в QuerySend

    .INetFrom = |"| + strDispName + |" <| + strEmail + ">"
    .Principal =  |"| + strDispName + |" <| + strEmail + "@" + profile.NotesDomain(0) + ">"
    .From = strEmail
    .tmpDisplaySentBy = strEmail
 11 сент. 2017 г., 05:28
Спасибо @ Алексей-Зимарев. Это работает, как и ожидалось, и состоит из четырех строк кода. Всем остальным, кто подал заявку, спасибо.

Ваш ответ на вопрос