mailto链接多个身体线条

时间:2012-04-27 18:56:48

标签: html outlook mailto

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

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

以下是一个锚点href:

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

只有“此处的消息”显示在电子邮件正文中。 (无论我使用chrome还是IE)

想法?

4 个答案:

答案 0 :(得分:193)

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

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

虽然上述内容似乎在许多情况下都有效,但用户olibre points out指示管理mailto URI方案的RFC指定应使用%0D%0A(回车+换行符)而不是{{1 (换行)。另见:Newline Representations

答案 1 :(得分:35)

  1. body字符串中使用单个mailto参数
  2. 使用%0D%0A作为换行符
  3. mailto URI SchemeRFC2368(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
    

答案 2 :(得分:16)

要使用escape()

来获取正文
body_line =  escape("\n");

所以

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";

答案 3 :(得分:10)

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

实施例

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

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;

检查encodeURIComponent文档