2012-05-14 35 views
1

我試圖用HTML鏈接填充mailto鏈接的主體。目標瀏覽器是IE 7+,郵件客戶端是Outlook 2007+。之前,我問我的問題,我會承認的事實是機體參數是用於短文本信息作爲所謂的在這裏:Mailto鏈接中引用的URL參數的Outlook處理

https://stackoverflow.com/a/4304779/573083

和詳細的位置:

特殊的「體「表示關聯的消息的主體是 消息。 「body」字段值旨在包含消息的第一個文本/純文本正文部分的內容 。 「body」僞首字段主要用於生成短文本 用於自動處理的郵件(例如郵件列表的「訂閱」郵件),而不是一般的MIME主體。除了基於UTF-8和百分比編碼的字符的編碼 之外,沒有附加的 編碼(例如base64或quoted-printable;參見[RFC2045])是用於「body」字段值的 。結果,與'mailto'URI中的消息編碼(例如,內容傳輸編碼)有關的頭部字段 是不相關的,並且必須被忽略。 「身體」僞 標題字段名稱已向IANA註冊,用於此特殊 目的(請參閱第8.2節)。

這就是說,在SO上有很多線程,在body標籤中插入鏈接的成功程度不同。例如:https://stackoverflow.com/a/1455881/573083https://stackoverflow.com/a/9138245/573083

我的問題是類似的,但它是特別與Outlook呈現嵌入式鏈接的引用參數。我目前有幾乎工作如下:

<a href="mailto:[email protected]?subject=This is a subject&body=http://someserver.somedomain/somepage.aspx?id=1234%26somekey=%22somevalue%22">A link</a> 

的部分鏈接是否正確顯示在Outlook體,但前景並不包括在該鏈接的最終報告URL參數(「someValue中」); =「somevalue」只是顯示爲純文本。查看電子郵件消息的來源顯示Outlook正在關閉封閉的<a>標記,因爲它正在將%22解釋爲鏈接的結尾。我試圖用%2f,/,'來逃避%22 - 無濟於事。我相信我需要正確的前景順序來理解%22應該包含在鏈接中,而不是封閉鏈接的封閉。

任何幫助,將不勝感激。

回答

0

根據?判斷,您尚未對身體組件進行編碼。

> encodeURIComponent("http://someserver.somedomain/somepage.aspx?id=1234%26somekey=%22somevalue%22") 
"http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%2526somekey%3D%2522somevalue%2522" 

因此,代碼應該是:

<a href="mailto:[email protected]?subject=This is a subject&body=http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%2526somekey%3D%2522somevalue%2522">A link</a> 

或者更可能的:

<a href="mailto:[email protected]?subject=This is a subject&body=http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%26somekey%3D%2522somevalue%2522">A link</a> 
0

我把裏面的 「<」 &鏈接 「>」。

%20 = space 

%0D = new line 

%3C = "<" 

%3E = ">" 

<html> 
 
<body>hi 
 
<a href="mailto:[email protected]?subject=This is a subject&body=Hi,%0DThis%20is%20a%20body%0DAlso%20this%20is%20a%20link%20%3Chttp%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%26somekey%3D%22somevalue%22%3E%20have%20fun.">A link</a></body> 
 

 
</html>