使用提交的数据创建电子邮件回复



我有一个在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

最新更新