Xpages 在浏览器中显示邮件nsf

Xpages 在浏览器中显示邮件nsf,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我试图将一个字段值从应用程序传递到在浏览器中打开的我自己的邮件数据库 我得到了整个url(我的第一反应:哇,太长了) 如何方便地引用收件人字段?(收件人:字段)是否从邮件数据库 我想使用sessionScope来选择所需的值,然后将其传递到上面的字段 我使用lotusScript在lotus notes应用程序中实现了上述要求,如下所示: Sub Click(Source As Button) // soome declarations Set db=s.CurrentDatab

我试图将一个字段值从应用程序传递到在浏览器中打开的我自己的邮件数据库

我得到了整个url(我的第一反应:哇,太长了)

如何方便地引用收件人字段?(
收件人:
字段)是否从邮件数据库

我想使用sessionScope来选择所需的值,然后将其传递到上面的字段

我使用lotusScript在lotus notes应用程序中实现了上述要求,如下所示:

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中做同样的事情呢?

iNotes不是xpages应用程序(这就是URL如此长的原因)

您可以使用
mailto:
链接在“收件人”字段中创建具有相关值的新电子邮件。这是标准的web开发功能,不是XPages或Domino的专有功能,因此有大量的页面解释该功能。该功能使用用户计算机的默认邮件程序创建新邮件。但我不确定iNotes是如何工作的


或者,iNotes文档可能会告诉您需要在URL中添加什么来设置“to”字段。

Paul的答案是一种方法。另一种方法是执行与LotusScript中相同的操作。在邮件文件中创建文档,将其保存(作为草稿),然后使用URL将其打开。您可以使用开发人员工具打开手动创建的草稿,找出所需的URL

我的解决方案基于
mailto:
协议。根据您的需要,您可以将其与单独的地址列表一起使用

要通过iNotes处理
mailto:
URL,您需要转到iNotes首选项,或者使用以下小技巧:


在XPages代码中,您需要做的就是创建一个正确的
mailto:
链接,并让用户单击它。

如果我理解正确,您希望生成一个URL,在iNotes上生成一封新的电子邮件,即使它尚未配置为默认电子邮件客户端

简而言之,使用一种黑客方法,将
SendTo
添加到URL中的
PresetFields
参数

以下是您提供的URL:

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,而不是通常的查询字符串;值1,名称1;值1
此参数的格式。所以

SendTo;name@domain.com
用于单个电子邮件地址

SendTo;name@domain.com%2Canother@domain.com
对于多个(%2c表示逗号。常用的逗号表示分隔名称值集)

SendTo;name@domain.com,CopyTo;another@domain.com,主题;试验,机体;使用其他选项测试

当然,查询字符串是一个限制因素。你不能有太多的值

Stephan解释了另一种方法:在邮件数据库中创建文档并使用:

https://server/mail/myname.nsf/0/unid?EditDocument

在这种情况下,邮件数据库将默认为iNotes。但是,在这种情况下,您应该将文档保存到邮件数据库中。

除非您向邮件模板添加逻辑以从URL读取参数,否则很可能不可能。
https://server/mail/myname.nsf/0/unid?EditDocument