我有一个在Domino
服务器上填写的联系表。提交表单后,我想向用户发送自动回复,确认收到。
我想使用 LotusScript
创建回复,从提交的表单中提取某些数据,例如电子邮件地址、联系人姓名。
有人可以建议我如何获取提交文档的ContactName
/EmailAddress
(而不是 test@gmail.com(字段的值并使用它们来构建回复电子邮件吗?我以我对LotusScript
的有限知识走到了这一步:
Sub Initialize
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim email As NotesDocument
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set email = db.CreateDocument
email.form="Memo"
email.principal="noreply@test.com@test"
email.from="noreply@test.com"
email.inetfrom="noreply@test.com"
email.subject="Email Confirmation"
email.body="Dear ..."
Call email.Send(False,"test@gmail.com")
End Sub
如果您的代码进入代理和代理,则可以从未处理的文档 - 属性:
Dim dc as NotesDocumentCollection
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
如果代码是从任何表单事件调用的,那么通常你有一个源作为NotesUIDocument,如果没有,你可以从打开的文档获取它:
Dim ws as New NotesUIWorkspace
Dim uidoc as NotesUIDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
'- alternative, if from event in open document,
'- where Source is always a Parameter of type NotesUIDocument
Set doc = Source.Document
之后,您可以通过项目名称从文档中获取值:
strMailAddress = doc.GetitemValue( "EmailAddress" )(0)
strContactName = doc.GetitemValue( "ContactName" )(0)
email.SendTo = strMailAddress
email.Body = "Dear " & strContactName & ", asfdsdfds"
未处理的文档集合由代理属性定义。如果它是"所有新文档",那么它将包含自上次运行以来的所有新文档。
通过将代码包装在 while 循环中来循环访问集合:
Set doc = dc.Getfirstdocument
while not doc is nothing
'Your old code goes here
Set doc = dc.GetNextDocument(doc)
Wend