mailto链接多个正文行

Posted

技术标签:

【中文标题】mailto链接多个正文行【英文标题】:mailto link multiple body lines 【发布时间】:2012-05-08 12:54:46 【问题描述】:

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

就我而言,我正在使用 Outlook 默认邮件阅读器对其进行测试。

以下内容放在一个锚href中:

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

电子邮件正文中仅显示“此处的消息”。 (不管我用的是chrome还是IE)

想法?

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢,这对我来说效果很好,而且看起来比互联网上流传的其他解决方案要简单得多。 这应该适用于所有特殊字符,对吧? &=%26, %=%25,有没有这个模式不成立的字符? 获取信息,$0A 就是 escape( "\n" ) 该编码器使用标准 encodeURIComponent 对 URI 组件进行编码。 %0D%0A 为我工作的电子邮件和在 whatsapp 消息中分享【参考方案2】:
    mailto 字符串中使用单个body 参数 使用%0D%0A 作为换行符

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

【讨论】:

【参考方案3】:

要获得身体线条,请使用 escape()

body_line =  escape("\n");

所以

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

【讨论】:

我个人更喜欢这个。主要是因为当您尝试添加 % encodeURIComponent,而是。 See here.【参考方案4】:

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

例子

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

emailBody = encodeURIComponent(emailBody);

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

查看encodeURIComponent文档

【讨论】:

include 用于 encodeURIComponent 是什么? @frakman1 encodeURIComponent 是一个 javascript 函数。您可以在不包含任何内容的情况下使用它。 @Koosh bcoz 上面的代码是 JavaScript,试试这个方法在 Blazor 中编码电子邮件正文 ***.com/a/4550600/1188322

以上是关于mailto链接多个正文行的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 MAILTO 链接的正文中添加 HTML 链接 [重复]

HTML mailto:链接内置的电子邮件,主题和正文

您可以使用 mailto 预先填写电子邮件的部分内容吗? [复制]

添加超链接时,VBA抛出错误1004

ios分享联系人结合mailto

使用mailto在网页中链接Email地址