2014-10-02 53 views
2

我試圖將應用程序的字段值傳遞到在瀏覽器中打開的我自己的郵件數據庫。在瀏覽器中的xpages郵件nsf

我得到了整個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 

我怎麼可以參考輕易給收件人場? (To:字段)從郵件數據庫?

我想使用一個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中同樣的事情?

+0

最有可能不可能,除非您添加邏輯到您的郵件模板從URL讀取參數。 – 2014-10-02 06:32:46

回答

1

iNotes不是XPage應用程序(這就是爲什麼URL太長)。

您可以使用mailto:鏈接在「to」字段中創建一個帶有相關值的新電子郵件。這是標準的Web開發功能,不是XPages或Domino專有的,所以有很多頁面解釋功能。該功能使用用戶計算機的默認郵件程序創建新郵件。雖然我不確定這是如何與iNotes合作的。

或者,iNotes文檔可能會告訴您需要添加到URL中以設置「to」字段。

0

保羅的答案是一種方法。另一個是像在LotusScript中那樣做。在郵件文件中創建一個文檔,將其保存(如草稿),然後使用URL打開它。您可以使用開發人員工具找出所需的URL,然後打開手動創建的草稿

0

我的解決方案基於mailto:協議。根據wikipedia,你可以使用昏迷分隔的地址列表。

要通過iNotes處理mailto:網址,您需要轉到iNotes偏好設置,或者使用這個小小的網址:https://www.bleedyellow.com/blogs/tomsparrow/entry/inotes-mailto

您需要在您的XPage代碼中執行的操作是正確的mailto:鏈接,並讓用戶單擊它。

1

如果我理解正確,您希望生成一個在iNotes上組成新電子郵件的URL,即使它尚未配置爲默認電子郵件客戶端。

簡而言之,使用hacky方法,將SendTo添加到URL中的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;[email protected]爲單個電子郵件地址。

SendTo;[email protected]%[email protected]用於多個(%2c是用於逗號。通常的逗號分隔的名稱 - 值集)。

SendTo;[email protected],CopyTo;[email protected],Subject;Test,Body;Test與其他選項。

當然,查詢字符串是一個限制因素。你不能有太多的價值。

替代已被斯蒂芬解釋說:要創建的郵件數據庫,並使用一個文件:

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

郵件數據庫將默認的iNotes在這種情況下。但是,在這種情況下,您應該將文檔保存到郵件數據庫中。