我正在尝试使用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/573083和https://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应该包含在链接中,而不是封闭链接的闭包。
任何帮助都将不胜感激。
答案 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>