首页 文章

mailto链接多个身体线条

提问于
浏览
104

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

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

以下是一个锚点href:

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

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

想法?

4 回答

  • 181

    获取body line使用escape()

    body_line =  escape("\n");
    

    所以

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

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

    var emailBody = "1st line.\n 2nd line \n 3rd line";
    
    emailBody = encodeURIComponent(emailBody);
    
    href = "mailto:me@somesite.com?body=" + emailBody;
    

    检查encodeURIComponent docs

  • 16

    您可以使用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 .

  • 31

    mailto 字符串中的

    • Use a single body parameter

    • Use %0D%0A as newline

    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
    

相关问题