mailto链接多个身体线
无法使多行在mailto链接中正常工作
在我的情况下,我正在使用Outlook默认邮件阅读器进行testing。
以下是放在锚href:
mailto:email@address.com?&subject=test&body=type%20your&body=message%20here
只有“邮件在这里”出现在电子邮件正文中。 (不pipe我使用chrome还是IE)
想法?
您可以使用url编码将换行符编码为%0A
。
mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
尽pipe上面的例子似乎在很多情况下都能正常工作,但用户olibre 指出 ,控制mailto URIscheme的RFC指定应该使用%0D%0A
(回车+换行)而不是%0A
(换行)。 另见: 换行符表示法 。
- 在
mailto
string中使用单个body
参数 - 使用
%0D%0A
作为换行符
mailto
URIscheme由RFC2368 (1998年7月)和RFC6068 (2010年10月)规定。
以下是最后一个RFC 第5部分的摘录:
消息正文中的换行符必须用
"%0D%0A"
编码。
即使在主体中没有结尾的"%0D%0A"
,实现可能会将最后的换行符添加到消息的主体中[…]
另请参阅第6节中的相同RFC的示例:
<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>
上面的mailto
正文对应于:
send current-issue send index
要获得身体线条使用escape()
body_line = escape("\n");
所以
href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
这就是我所做的,只需添加\n
并使用encodeURIComponent
例
var emailBody = "1st line.\n 2nd line \n 3rd line"; emailBody = encodeURIComponent(emailBody); href = "mailto:me@somesite.com?body=" + emailBody;