在mailto正文中插入换行符


166

我想在我的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>


@John副本如何?关于%20被用来输入新行,这是一个非常具体的问题,而不是像这个问题一样如何制作新行。
jdmdevdotnet

1
对我来说看起来像个骗子。该问题询问“如何像插入空格一样插入换行符”。它不是在问如何%20 用作换行符。我看到的唯一实质性区别是,这是关于身体的问题,而那个问题是关于主体的问题。不过,无论哪种情况,其答案都是相同的。
艾米(Amy)

Answers:


242

我建议您尝试使用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>

您可能需要在%name之前取出%20,否则在下一行将第一个字符作为空格。

注意,当我用您的代码测试此代码时,它起作用了(还有一些额外的间距)。您使用的邮件客户端不允许HTML格式吗?


1
我已经尝试过了%0D%0A,但对我不起作用。我使用电子邮件营销解决方案发送时事通讯。我想这是在重新编写我的代码
Marion 2014年

1
哦,如果您使用的是单独的解决方案,是否尝试过HTML标记“ <br>”?当我使用第三方应用程序时,有时可以使用。
2014年

2
我在其他平台上进行了测试,我的代码运行正常!它肯定来自我使用的解决方案。所有这些时间都一无所有...抱歉,再次感谢您的帮助
Marion 2014年

4
如果你想在每次转换<br><br/><br />%0D%0A你可以做var emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
若昂·皮门特尔·费雷拉

117

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

这也适用于所有URL方案,例如gopher,smtp,sdp,imap,ldap等。


7
请注意,如果您使用JavaScript构建mailto链接,则可以使用escape('\r\n')get %0D%0A
马克·罗德

6
附加说明:如果要使用ES6 / ES2015字符串模板构建链接,则原始代码(%0D%0A)可以正常工作。
亚当·辛普森

@MarkRhodes:由于mailto是URI,因此您也可以使用encodeURI(myMailToURIString),它将转义您邮件正文中所需的所有字符:-)
Lars Juel Jensen

4

奇怪的是,对于Android版gmail,%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>

-1

对于使用JavaScript的纯文本电子邮件,您也可以将其\r与一起使用encodeURIComponent()

例如,此消息:

hello\rthis answer is now well formated\rand it contains good knowleadge\rthat is why I am up voting

URI编码,结果为:

hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

并且,使用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

将导致以下电子邮件正文文本:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting

1
@littlecoder因为答案很差:格式错误,措辞欠佳,并且忽略了必要的上下文。迷惑落在此页面上的人们与帮助他们一样容易。这不是本网站的标准是有用的,所以它一直因此投
UnrealEagle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.