Outlook处理mailto链接中引用的url参数

时间:2012-05-14 16:33:53

标签: outlook url-encoding mailto

我正在尝试使用html链接填充mailto链接的正文。目标浏览器是IE 7+,邮件客户端是Outlook 2007+。在我提出问题之前,我会承认body参数适用于短文本消息,如下所示:

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

并在此详述:

  

特殊的“身体”表示相关的是身体   信息。 “body”字段值旨在包含其内容   消息的第一个text / plain正文部分。 “身体”伪   标题字段主要用于生成短文本   用于自动处理的消息(例如“订阅”消息)   邮件列表),不适用于一般的MIME主体。除了编码   基于UTF-8和百分比编码的字符,没有额外的   编码(例如,base64或quoted-printable;参见[RFC2045])是   用于“body”字段值。因此,标题字段   与a中的消息编码(例如,内容传输编码)有关   'mailto'URI无关紧要,必须予以忽略。 “身体”伪   标题字段名称已在IANA注册此特殊名称   目的(参见第8.2节)。

话虽如此,SO上有许多线程,在body标签中插入链接有不同程度的成功。例如:https://stackoverflow.com/a/1455881/573083https://stackoverflow.com/a/9138245/573083

我的问题类似,但它特别针对outlook渲染嵌入式链接的引用参数。我目前有以下几乎正在运作:

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

部分链接在outlook主体中正确显示,但outlook不包括链接中最终引用的url参数(“somevalue”); =“somevalue”只是以纯文本形式出现。查看电子邮件消息的来源显示outlook正在关闭封闭的<a>标记,因为它将%22解释为链接的末尾。我试图用%2f逃避%22,/,' - 无济于事。我认为我需要正确的outlook序列才能理解%22应该包含在链接中,而不是封闭链接的闭包。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

根据?判断,您尚未对身体组件进行编码。

> 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:someaddress@somedomain.com?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:someaddress@somedomain.com?subject=This is a subject&body=http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%26somekey%3D%2522somevalue%2522">A link</a>

答案 1 :(得分:0)

I would put the link inside "<" & ">".

%20 = space

%0D = new line

%3C = "<"

%3E = ">"

<html>
<body>hi
 <a href="mailto:someaddress@somedomain.com?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>