我在电子邮件中添加了一个按钮。
单击该按钮,将运行以下公式:
@If(disablebutton="1";
@Return(@Prompt([Ok];"";"Thank you but you have already clicked once! :) "));
@Prompt([Ok];"";"Thank you for the click! :) "));
@MailSend( "abc@xyz.com"; ""; "" ; "I will be present at the event!" ;
"" ; "" ; [PriorityNormal] );
FIELD disablebutton:="1";
以上公式基本上执行以下操作:
if(disableButton is 1){
Open prompt : you have already clicked and return without executing anything ahead
}else{
Open prompt : Thank you for the click!
}
send email to the specified email address with specified subject
set disableButton = 1
因此,当接收者打开电子邮件时,上述公式限制接收者只需点击一次按钮,结果只有一封邮件被发送到指定的电子邮件地址。
然而,问题是,如果用户关闭邮件并再次打开,则从头开始运行相同的公式,这有效地允许接收者再次发送邮件。
通过关闭并打开邮件并重新点击按钮,他可以有效地将多封邮件发送到指定的电子邮件地址。
如何处理?我希望disableButton的值永久保留,以便邮件只发送一次。
答案 0 :(得分:3)
将以下几行放在公式的末尾:
@If(@IsDocBeingEdited;
@PostedCommand([FileSave]);
@Do( @PostedCommand([EditDocument]);
@PostedCommand([FileSave]);
@PostedCommand([EditDocument])))
只有当文档处于编辑模式并且保存时,字段设置才会保留在文档中。通常,当用户阅读他们的电子邮件时,电子邮件处于阅读模式。使用@Command([EditDocument]);
,您可以在读取和编辑模式之间切换。
如果电子邮件处于编辑模式,我们只需要保存文档。
如果电子邮件处于读取模式,我们将文档更改为编辑模式,保存文档并将其设置回读取模式。
答案 1 :(得分:0)
尝试在LotusScript中实现相同的功能。调试更容易 - 那里。
dim uiws as new notesuiworkspace
dim uidoc as notesuidocument
dim disablebutton as string
dim doc as notesdocuemnt
set uidoc = uiws.currentDocument
disablebutton = uidoc.fieldgettext("DisableButton")
if(strcompare(disablebutton,"1",5)=0 then
messagebox {Thank you but you have already clicked once! :)}
else
call sendMail(uidoc.document)
set doc =uidoc.document
call doc.replaceitemvalue("DisableButton","1")
call doc.save(true,false)
call uidoc.close()
end if
还需要实现SendMail功能。