2012-01-06 83 views

回答

14

使用HTML標準mailto: link syntax。你只需要確保生成的HTML鏈接結束了看起來像

<a href="mailto:[email protected]?subject=Some%20subject&amp;body=Some%20body">mail</a> 

這可以在JSF通過例如

<h:outputLink value="mailto:#{user.email}"> 
    <f:param name="subject" value="Some subject" /> 
    <f:param name="body" value="Some body" /> 
    <h:outputText value="mail" /> 
</h:outputLink> 

這些鏈接會打開客戶端的默認郵件組成編輯器來實現。 subjectbody參數是可選的,並允許您在電子郵件編輯器中設置默認主題和正文。

+2

通過使用JSF方法,它會分別轉移我的主題和主體:「Some +主題」和「Some +主體」。無論如何要解決這個問題(這將使更優雅的解決方案)? – blo0p3r 2013-08-12 18:37:00

+0

同樣的問題在這裏,沒有解決方案。 – LStrike 2014-03-27 10:38:33

+0

只需按「問題問題」按鈕? – BalusC 2014-03-27 11:06:29

1

壞消息是,JSF標記h:outputLink將主題和主體作爲查詢參數進行轉義,用+而不是%20替換空格。

的好消息是,你可以用java.net.URI類實現正確的結果:

java.net.URI uri = new java.net.URI("mailto", "[email protected]", "subject=Some subject&body=Some body"); 
String result = "mailto:?" + uri.getRawFragment(); 
assert result.equals("mailto:?subject=Some%20subject&body=Some%20body"); 

注意,在構造函數中的前兩個參數是不相關的。

您可以在href屬性您的JSF/Primefaces標籤,使用resulth:outputLinkp:button與預定義的主題和內容,空接收地址打開默認的電子郵件客戶端。

相關問題