我试图将字段值从应用程序传递到我在浏览器中打开的邮件数据库。
我得到了整个网址(我的第一反应:哇,好久)
https://server/MyName.nsf/($Inbox)/$new/?EditDocument&Form=h_PageUI&PresetFields=h_EditAction;h_New,s_NotesForm;Memo,s_ParentContentId;($Inbox)1,s_ViewName;(%24Inbox),s_InheritAttachment;false,s_SortOrder;1,s_SortColumnPN;$70&ui=portal
如何轻松引用收件人字段?来自邮件数据库的(To:
字段)?
我想使用sessionScope选择所需的值,然后将其传递给上面的字段。
我在莲花笔记应用程序中使用类似这样的LotusScript做了上述要求:
Sub Click(Source As Button)
// soome declarations
Set db=s.CurrentDatabase
Dim dcc As NotesDocumentCollection
Set dcc = db.UnprocessedDocuments
Dim item As NotesItem
Set doc = dcc.GetFirstDocument
' em$=doc.nms_Email(0)
While Not (doc Is Nothing)
If doc.HasItem ("nms_Email") Then
Set item=doc.GetFirstItem("nms_Email")
Else
If doc.HasItem ("txt_Email") Then
Set item=doc.GetFirstItem("txt_Email")
Else
Messagebox "No value for the field!"
Exit Sub
End If
End If
Forall e In item.values
If Len(e) > 2 Then em$=em$+e+"; "
End Forall
Set doc=dcc.GetNextDocument(doc)
Wend
If em$=";" Then Exit Sub
test$=Strleftback(em$, ";")
var=Evaluate({@Explode("} & test$ & {"; ";")})
var2=Evaluate("@MailDbName")
mdb$=var2(1)
msv$ =var2(0)
Set dbm=s.GetDatabase(msv$, mdb$, False)
Set docW = dbm.CreateDocument
docW.form = "Memo"
docW.SendTo=var
Set uidoc = w.EditDocument(True,docW)
End Sub
但是我怎么能在xpages中做同样的事情呢?
答案 0 :(得分:1)
iNotes不是XPage应用程序(这就是URL太长的原因)。
您可以在"至"中创建一个包含相关值的新电子邮件。使用mailto:
链接的字段。这是标准的Web开发功能,不是XPages或Domino专有的,因此有很多页面解释了这些功能。该功能使用用户计算机的默认邮件程序创建新邮件。我不确定iNotes的效果如何。
或者,iNotes文档可能会告诉您需要添加到URL中以将"设置为"字段。
答案 1 :(得分:1)
如果我理解正确,您希望生成一个在iNotes上组成新电子邮件的URL,即使它尚未配置为默认的电子邮件客户端。
简短的方法,使用hacky方法,将SendTo
添加到网址中的PresetFields
参数。
以下是您提供的网址:
https://server/MyName.nsf/($Inbox)/$new/?EditDocument&Form=h_PageUI&PresetFields=h_EditAction;h_New,s_NotesForm;Memo,s_ParentContentId;($Inbox)1,s_ViewName;(%24Inbox),s_InheritAttachment;false,s_SortOrder;1,s_SortColumnPN;$70&ui=portal
将修改为:
...&PresetFields=...othervalues...,SendTo;someEmailAddress&ui=portal
iNotes将为此参数提供Name1;Value1,Name1;Value1
格式,而不是通常的查询字符串。所以,
SendTo;name@domain.com
。
SendTo;name@domain.com%2Canother@domain.com
表示多个(%2c表示逗号。常用逗号用于分隔名称 - 值集)。
SendTo;name@domain.com,CopyTo;another@domain.com,Subject;Test,Body;Test
以及其他选项。
当然,查询字符串是一个限制因素。你不能拥有太多的价值观。
Stephan解释了替代方案:要在邮件数据库中创建文档并使用:
https://server/mail/myname.nsf/0/unid?EditDocument
在这种情况下,邮件数据库将默认为iNotes。但是,在这种情况下,您应该将文档保存到邮件数据库中。
答案 2 :(得分:0)
保罗的回答是一种方法。另一种方法是像在LotusScript中那样做。在邮件文件中创建一个文档,保存它(作为草稿),然后使用URL打开它。您可以使用打开手动创建的草稿的开发人员工具来确定所需的URL
答案 3 :(得分:0)
我的解决方案基于mailto:
协议。根据{{3}},您可以将其与逗号分隔的地址列表一起使用。
要通过iNotes处理mailto:
网址,您需要转到iNotes偏好设置,或使用此小黑客:wikipedia。
您需要在XPage代码中执行的操作是正确的mailto:
链接,并允许用户点击它。