mailto链接多个身体线条

Kev*_*eus 117 html mailto outlook

无法在mailto链接中使多行正常工作

在我的情况下,我正在使用Outlook默认邮件阅读器进行测试.

以下是一个锚点href:

mailto:email@address.com?&subject=test&body=type%20your&body=message%20here

只有"此处的消息"显示在电子邮件正文中.(我是否使用chrome或IE)

想法?

cya*_*ang 201

您可以使用URL编码将换行符编码为%0A.

mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here

虽然以上似乎在许多情况下都有效,但用户olibre 指出管理mailto URI方案的RFC指定%0D%0A应该使用(回车+换行)而不是%0A(换行).另请参见:换行符表示法.

  • 谢谢,这对我来说效果很好,看起来比在互联网上漂浮的其他解决方案简单得多. (4认同)
  • 对于信息,`$ 0A`只是`escape("\n")` (2认同)
  • 该编码器使用标准的`encodeURIComponent`来编码URI组件. (2认同)

oli*_*bre 38

  1. bodymailto字符串中使用单个参数
  2. 使用%0D%0A如换行符

mailtoURI方案是通过指定由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>
Run Code Online (Sandbox Code Playgroud)

以上mailto机构对应于:

send current-issue
send index
Run Code Online (Sandbox Code Playgroud)


lok*_*008 18

获取body line使用escape()

body_line =  escape("\n");
Run Code Online (Sandbox Code Playgroud)

所以

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
Run Code Online (Sandbox Code Playgroud)

  • `encodeURIComponent`,而不是.[见这里.](http://stackoverflow.com/questions/75980/best-practice-escape-or-encodeuri-encodeuricomponent) (4认同)

kir*_*nvj 14

这就是我的工作,只需添加\n和使用encodeURIComponent

var emailBody = "1st line.\n 2nd line \n 3rd line";

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;
Run Code Online (Sandbox Code Playgroud)

检查encodeURIComponent文档

  • @frakman1encodeURIComponent 是一个 JavaScript 函数。您可以在没有任何包含的情况下使用它。 (2认同)