Форум продуктов IBM Lotus
Общие вопросы => Разработка приложений => Тема начата: ShurikDM от 09 Октябрь 2009, 16:36:20
-
Господа! Возник вопрос, как отправлять письма-уведомления?. Агент писан на Lotus Script, запускается по расписанию. Как известно, функция Evaluate с @MailSend не работает. Подскажите, как решить проблему средствами скрипта или посоветуйте "обходной маневр". Заранее спасибо!
-
что то вроде
...
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)
Не подойдет?
-
Спасибо! Это как вариант, но я хотел бы что-нибудь более простое, без прикрепления формы к документу (как следствие - засорение базы ненужными уведомлениями). Более того, я хотел бы по аналогии с @MailSend отправить обычное письмо со ссылкой на требуемый документ в моей базе
-
О каком засорении речь? Если не сохранять документ, то в базе он и не останется. Ну или можно автоматически удалять другим агентом эти уведомления.
В LotusScript так просто, как с @MailSend, не получится, вариант, предложенный nadya, вполне адекватный. А в теле письма (поле Body) уже добавляете любой текст и, например, ссылку.
-
Спасибо. Решил проблему посылом всей формы. Как ее прикрепить к простому письму, так и не догнал. А как в тело ссылку на этот документ вставить?
-
Форму нужно использовать 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)
-
Методами объекта NotesRichTextItem (поле Body) как раз и можно добавлять ссылки и другие элементы в тело письма
-
ссылку, если нужно, можно вставить так
...
Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem( newDoc, "Body" )
Call rtitem.AppendDocLink( db, db.Title )
...
нужно использовать метод AppendDocLink
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ] )
-
nadya, спасибо за дополнение!
-
Спасибо большое, ребят!
-
Форму нужно использовать 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 адресата но письмо в итоге не приходит, пока что не знаю в какую сторону копать, подсобите