Как отправить письмо в агенте на Lotus Script?

Автор Тема: Как отправить письмо в агенте на Lotus Script?  (Прочитано 16794 раз)

ShurikDM

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • E-mail
Господа! Возник вопрос, как отправлять письма-уведомления?. Агент писан на Lotus Script, запускается по расписанию. Как известно, функция Evaluate с @MailSend не работает. Подскажите, как решить проблему средствами скрипта или посоветуйте "обходной маневр". Заранее спасибо!

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #1 : 12 Октябрь 2009, 08:07:54 »
что то вроде
...
Dim doc as notesdocument
Dim recipients( 1 To N ) As String
recipients( 1 ) = "recipient_1"
...
recipients( N ) = "recipient_N"
.....
doc.form = "Notice"
Call doc.send( fasle, recipients)

Не подойдет?

ShurikDM

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #2 : 12 Октябрь 2009, 12:43:24 »
Спасибо! Это как вариант, но я хотел бы что-нибудь более простое, без прикрепления формы к документу (как следствие - засорение базы ненужными уведомлениями). Более того, я хотел бы по аналогии с @MailSend отправить обычное письмо со ссылкой на требуемый документ в моей базе

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #3 : 15 Октябрь 2009, 11:21:00 »
О каком засорении речь? Если не сохранять документ, то в базе он и не останется. Ну или можно автоматически удалять другим агентом эти уведомления.
В LotusScript так просто, как с @MailSend, не получится, вариант, предложенный nadya, вполне адекватный. А в теле письма (поле Body) уже добавляете любой текст и, например, ссылку.

ShurikDM

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #4 : 15 Октябрь 2009, 13:34:52 »
Спасибо. Решил проблему посылом всей формы. Как ее прикрепить к простому письму, так и не догнал. А как в тело ссылку на этот документ вставить?

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #5 : 15 Октябрь 2009, 17:42:18 »
Форму нужно использовать Memo, а в поле Body - все тело письма (Subject - тема и т.д.), в поле Body можно писать текст и все остальное.

Пример:
Dim s As New NotesSession
Dim db As NotesDatabase
Dim mailDoc As NotesDocument
Dim rtbody As notesRichTextItem

Set db = s.CurrentDatabase
Set mailDoc = db.CreateDocument

Set rtbody = New NotesRichTextItem(mailDoc, "Body")
Call rtbody.AppendText("Поступил новый документ")

mailDoc.Form = "Memo"
mailDoc.Principal = "noreply@lotusnotes.ru"
mailDoc.SMTPOriginator = "noreply@lotusnotes.ru"
mailDoc.DisplaySent = "Post agent"
mailDoc.Subject = "Оповещение"
mailDoc.Importance = "1"
mailDoc.SendTo = "usertosendmessage@lotusnotes.ru"
Call mailDoc.Send(False)

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #6 : 15 Октябрь 2009, 17:43:37 »
Методами объекта NotesRichTextItem (поле Body) как раз и можно добавлять ссылки и другие элементы в тело письма

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #7 : 16 Октябрь 2009, 09:11:58 »
ссылку, если нужно, можно вставить так
...
Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink( db, db.Title )
...

нужно использовать метод AppendDocLink
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ] )

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #8 : 16 Октябрь 2009, 12:18:45 »
nadya, спасибо за дополнение!

ShurikDM

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #9 : 20 Октябрь 2009, 17:01:03 »
Спасибо большое, ребят!

Akimchik

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
    • E-mail
Re: Как отправить письмо в агенте на Lotus Script?
« Ответ #10 : 17 Ноябрь 2016, 14:34:19 »
Форму нужно использовать Memo, а в поле Body - все тело письма (Subject - тема и т.д.), в поле Body можно писать текст и все остальное.

Пример:
Dim s As New NotesSession
Dim db As NotesDatabase
Dim mailDoc As NotesDocument
Dim rtbody As notesRichTextItem

Set db = s.CurrentDatabase
Set mailDoc = db.CreateDocument

Set rtbody = New NotesRichTextItem(mailDoc, "Body")
Call rtbody.AppendText("Поступил новый документ")

mailDoc.Form = "Memo"
mailDoc.Principal = "noreply@lotusnotes.ru"
mailDoc.SMTPOriginator = "noreply@lotusnotes.ru"
mailDoc.DisplaySent = "Post agent"
mailDoc.Subject = "Оповещение"
mailDoc.Importance = "1"
mailDoc.SendTo = "usertosendmessage@lotusnotes.ru"
Call mailDoc.Send(False)

У меня смежная проблема но я пытаюсь на несколько адресатов отослать письмо

' Определяем адрес получателя
Dim arRec As Variant
arRec = curdoc.GetItemValue("email")
If Isarray(arRec) Then
rec = arRec(0)
Else
rec = arRec
End If
If rec ="" Then Msgbox "В РКК документа не указан E-mail" , , "Error"

ReDim preserve arRec(ubound(arRec)+1)
arRec(ubound(arRec))= curdoc.GetItemValue("email_3")(0)
rec=arRec


в итоге приходит только на одного адресата который в поле Email, Email_3 заполняется автоматически @формулами и может содержать 0-2 адресата но письмо в итоге не приходит, пока что не знаю в какую сторону копать, подсобите