在mailto正文中插入换行符

Mar*_*ion 137 mailto email

我想在我的mailto正文中插入换行符.我尝试了%0A,%0D和%0D%0A.没有什么对我有用.我在Mac OSX上使用Google Chrome在Gmail,Yahoo,Apple Mail,Outlook 2010,Outlook.com和Thunderbird上进行了测试.

有什么帮助吗?

这是我的代码:

<a href="mailto:email@mycompany.com?subject=Subscribe&body=Lastame%20%3A%0D%0A%20Firstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>
Run Code Online (Sandbox Code Playgroud)

Jem*_*Jem 202

我建议您尝试使用html标签<br>,以防您的营销应用程序识别它.

我用%0D%0A.只要电子邮件是HTML格式的,这应该可以工作.

<a href="mailto:email@mycompany.com?subject=Subscribe&body=Lastame%20%3A%0D%0AFirstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>
Run Code Online (Sandbox Code Playgroud)

您可能希望在Firstname之前取出%20,否则您将在下一行中有一个空格作为第一个字符.

注意,当我用你的代码测试它时,它工作(以及一些额外的间距).您使用的是不允许HTML格式化的邮件客户端吗?

  • 我已经尝试过 `%0D%0A`,但它对我不起作用。我使用电子邮件营销解决方案来发送我的时事通讯。我想它正在重写我的代码 (2认同)
  • 我用其他平台做了一些测试,我的代码工作得很好!它绝对来自我使用的解决方案.所有那些时间都没有了......对不起,伙计们,再次感谢你的帮助 (2认同)
  • 如果您想将每个`<br>`,`<br/>或`<br />`转换为'%0D%0A`,您可以执行`var emailBody = htmlBody.replace(/ <br\s ?*\/> /毫克, "%0D 0A%");` (2认同)

dav*_*rey 103

根据RFC2368的定义mailto:,进一步通过RFC1738中的示例进行了强化,明确指出生成换行符的唯一有效方法是使用%0D%0A.

这也适用于所有url方案,如gopher,smtp,sdp,imap,ldap等.

  • 请注意,如果使用JavaScript构建mailto链接,则可以使用`escape('\ r \n')`来获取`%0D%0A`. (5认同)
  • 附加说明:如果您使用ES6/ES2015字符串模板构建链接,原始代码(`%0D%0A`)可以正常工作. (5认同)
  • @MarkRhodes:由于mailto是一个URI,您还可以使用encodeURI(myMailToURIString),它将转义邮件正文中所需的所有字符:-) (2认同)

小智 15

<a href="mailto:example@gmail.com?subject=Request&body=Hi,%0DName:[your name] %0DGood day " target="_blank"></a>
Run Code Online (Sandbox Code Playgroud)

尝试添加 %0D 来换行。这肯定会起作用。

上面的代码将显示以下内容:

Hi,
Name:[your name] 
Good day
Run Code Online (Sandbox Code Playgroud)


小智 5

对于使用 JavaScript 的纯文本电子邮件,您也可以使用\rwith encodeURIComponent()

例如,此消息:

hello\rthis answer is now well formated\rand it contains good knowleadge\rthat is why I am up voting
Run Code Online (Sandbox Code Playgroud)

URI 编码,结果为:

hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting
Run Code Online (Sandbox Code Playgroud)

并且,使用href:

mailto:me@house.country?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting
Run Code Online (Sandbox Code Playgroud)

将产生以下电子邮件正文:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
Run Code Online (Sandbox Code Playgroud)


pep*_*umo 5

奇怪的是,在 gmail for android%0D%0A中不起作用并且<br>有效:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>
Run Code Online (Sandbox Code Playgroud)

  • 对于 Android 10 上的最新 GMail 应用程序,这似乎不再正确 - `&lt;br&gt;` 将被打印为“&lt;br&gt;”而不是换行符。 (2认同)