无法让多行在mailto链接中正常工作
在我的情况下,我正在使用Outlook默认邮件阅读器进行测试 .
以下是一个锚点href:
mailto:email@address.com?&subject=test&body=type%20your&body=message%20here
只有“此处的消息”显示在电子邮件正文中 . (我是否使用chrome或IE)
想法?
获取body line使用escape()
body_line = escape("\n");
所以
href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
这就是我做的,只需添加 \n 并使用 encodeURIComponent
\n
encodeURIComponent
例
var emailBody = "1st line.\n 2nd line \n 3rd line"; emailBody = encodeURIComponent(emailBody); href = "mailto:me@somesite.com?body=" + emailBody;
检查encodeURIComponent docs
您可以使用URL encoding将换行符编码为 %0A .
%0A
mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
虽然以上似乎在许多情况下都有效,但用户olibre points out指出mailto URI方案的RFC指定应使用 %0D%0A (回车换行)代替 %0A (换行) . 另见:Newline Representations .
%0D%0A
mailto 字符串中的
mailto
Use a single body parameter
Use %0D%0A as newline
mailto URI Scheme由RFC2368(1998年7月)和RFC6068(2010年10月)指定 .以下是最后一个RFC的section 5的摘录:
[...]消息正文中的换行符必须用“%0D%0A”编码 . 实现可以在消息正文中添加最后一个换行符,即使正文中没有尾随的“%0D%0A”[...]
另请参阅section 6来自同一RFC的示例:
<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>
以上 mailto 正文对应于:
send current-issue send index
4 回答
获取body line使用escape()
所以
这就是我做的,只需添加
\n
并使用encodeURIComponent
例
检查encodeURIComponent docs
您可以使用URL encoding将换行符编码为
%0A
.mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
虽然以上似乎在许多情况下都有效,但用户olibre points out指出mailto URI方案的RFC指定应使用
%0D%0A
(回车换行)代替%0A
(换行) . 另见:Newline Representations .mailto
字符串中的Use a single body parameter
Use %0D%0A as newline
mailto URI Scheme由RFC2368(1998年7月)和RFC6068(2010年10月)指定 .
以下是最后一个RFC的section 5的摘录:
另请参阅section 6来自同一RFC的示例:
以上
mailto
正文对应于: