• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Решено Отправка письма автоматически

k85

Lotus Team
11.10.2011
260
1
BIT
0
в базе есть форма, в ней заполняют поля, далее нажатием кнопки, регистрируется новый пользователь
Код:
reg.Expiration = dt
reg.IDType = ID_HIERARCHICAL
reg.MinPasswordLength = 6	 
...
Call reg.RegisterNewUser(_
LastName, _
...
Set db2 = session.GetDatabase(resSer,  "names.nsf")
If (db2.IsOpen) Then
 
Set view = db2.GetView("($Users)") 
Call view.Refresh
itemf=doc.GetItemValue("LastName")(0) +" "+doc.GetItemValue("FirstName")(0)

Хотелось бы в той же форме автоматически отправлять письмо с настройками коннекшинов. Например в этой же форме с данными нажать кнопку, по которой будет создаваться письмо со вложенной кнопкой.
С кнопкой вроде получается, а вот как автоматически создавать письмо и отправлять из базы не могу сообразить
Может есть кто-то кто может помочь?
 
Последнее редактирование модератором:

k85

Lotus Team
11.10.2011
260
1
BIT
0
mSubject = Doc.Name(0) '"Письмо с настройками"
TBody = { необходимо нажать кнопку. } &< и здесь должна быть кнопка
...note.DisplayName="name"
note.Destination="name"
note.OptionalNetworkAddress="name"...>
 
S

susinmn

mSubject = Doc.Name(0) '"Письмо с настройками"
TBody = { необходимо нажать кнопку. } &< и здесь должна быть кнопка
...note.DisplayName="name"
note.Destination="name"
note.OptionalNetworkAddress="name"...>

Кнопку создаешь сам в настроечном документе в Rt поле. При создании письма ее копируешь.
P.S.: сообщение сразу после регистрации, возможно, не отправится. Делай по расписанию и лови ошибки при отправке.
 
  • Нравится
Реакции: k85

k85

Lotus Team
11.10.2011
260
1
BIT
0
эх точно, тогда точно 1 кнопка регистрирует, обновляется Ак и потом нажимаю в той форме 2ую кнопку, по которому отправляется уже письмо
С Rt поле не пойму, это поле в настроечном документе просто создать? пробую в самой форме создавать и при открытии формы мне в АК коннекшины сразу отправляет
 
Последнее редактирование модератором:
S

susinmn

С Rt поле не пойму, это поле в настроечном документе просто создать? пробую в самой форме создавать и при открытии формы мне в АК коннекшины сразу отправляет
Создаешь форму с RT полем, создаешь док (*) по этой форме, в RT создаешь свою кнопку. При создании письма пользователю, получаешь (*) и копируешь
Код:
maildoc.principal="Отдел кадров"
Set rtitem = New NotesRichTextItem(maildoc, "Body")
maildoc.Subject = "Отдел кадров информирует, что " & startDate.DateOnly & " - первый день Вашего очередного отпуска"
Call rtitem.AddNewline(2)
Call rtitem.AppendText("Соответствующий документ открывается щелчком по иконке - ")
Call rtitem.AppendDocLink(doc, "")
Call rtitem.AddNewline(1)
 
richStyle.Bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText("Если Вы согласны с датами отпуска")
richStyle.Bold = False
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" - нажмите на кнопку ")
Call rtitem.AppendRTItem(RtitemWithButton)
 
Последнее редактирование:

k85

Lotus Team
11.10.2011
260
1
BIT
0
не могу никак понять
Создаю форму ButDop , в ней поле Rich Text - ButDop (с необходимыми данными для заполнения)
в основной форме, создаю кнопку
Код:
doc.principal=doc.FIO(0)
Set rtitem = New NotesRichTextItem(doc, "Body")
doc.Subject = "Настройки  "
Call rtitem.AddNewline(2)
Call rtitem.AppendText(".... - ")
Call rtitem.AppendDocLink(doc, "")
Call rtitem.AddNewline(1)
 
Dim rt As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
Set richStyle = s.CreateRichTextStyle
 
' получить из формы ButDop поле ?
Set db = s.CurrentDatabase
[B]Set memo = db.GetForm("ButDop") ' - находит нормально[/B]
 
[B]Set rt=memo.GetFirstItem("ButDop") ' - does not exist[/B]
 
 
richStyle.Bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText("....  ")
richStyle.Bold = False
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" - нажмите на кнопку ")
Call rtitem.AppendRTItem( rt )

Что не так делаю?
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
коллеги, похвально что вы оформляете код в теги, но будьте последовательны ;) - указывайте соот. тип(lotusscript)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
Set memo = db.GetForm("ButDop") ' - находит нормально
Set rt=memo.GetFirstItem("ButDop") ' - does not exist
это есть только в готовом доке (т.е. в БД надо создать настроечный док и искать его, например по линку или UNID)
 

k85

Lotus Team
11.10.2011
260
1
BIT
0
@lmike,
@susinmn,
огромное спасибо!
еще осталась одна проблема в той кнопке, что в письме
Код:
 Call uidoc.Save()
Call uidoc.FieldSetText("SaveOptions", "0")
Set doc=uidoc.Document
Call uidoc.Close(True)
Call uidoc.DeleteDocument()
удаляется в корзину, а как удалить вообще это письмо, после нажатия и внесения данных ?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
@k85, непонятно - зачем его сохранять, а потом устанавливать поле, а потом удалять?
да еще получать doc (зачем-то), а удалять по UI
ну на всяк случай
RemovePermanently (NotesDocument - LotusScript®)
Permanently deletes a document from a database, doing a hard deletion even if soft deletions are enabled.
Note: This method is new with Release 6.
Defined in
NotesDocument
[DOUBLEPOST=1450707741,1450707495][/DOUBLEPOST]и SaveOptions прописывают в бэкэнде (обычно), да еще получают само поле и устанавливают SaveToDisk в False
Код:
  Dim item As NotesItem
  Set item = doc.replaceItemvalue({SaveOptions},{0})
  item.SaveToDisk = False
  Call doc.Save(True, False)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!