在邮件正文中插入换行符
Posted
技术标签:
【中文标题】在邮件正文中插入换行符【英文标题】:Insert a line break in mailto body 【发布时间】:2014-05-11 01:02:41 【问题描述】:我想在我的邮件正文中插入一个换行符。 我尝试了 %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 class="center" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" ></a>
【问题讨论】:
可能重复:***.com/questions/15019689/… @John 怎么是重复的?这是一个关于%20
被用来输入新行的非常具体的问题,而不是如何像这个问题那样制作新行。
对我来说像是个骗子。该问题询问“我如何像插入空格一样插入换行符”。它不是在询问如何使用 %20
as 换行符。我看到的唯一实质性区别是这是询问身体,而该问题询问的是主题。不过,无论哪种情况,答案都是一样的。
这能回答你的问题吗? mailto link multiple body lines
【参考方案1】:
我建议您尝试使用 html 标签<br>
,以防您的营销应用程序能够识别它。
我使用%0D%0A
。只要电子邮件是 HTML 格式,这应该可以工作。
<a href="mailto:email@mycompany.com?subject=Subscribe&body=Lastame%20%3A%0D%0AFirstname%20%3A"><img class="center" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" ></a>
您可能希望在 Firstname 之前取出 %20,否则下一行的第一个字符将有一个空格。
请注意,当我使用您的代码对此进行测试时,它可以正常工作(以及一些额外的间距)。您是否使用了不允许 HTML 格式化的邮件客户端?
【讨论】:
我已经尝试过%0D%0A
,但它对我不起作用。我使用电子邮件营销解决方案来发送我的时事通讯。我想它正在重写我的代码
哦,如果您使用单独的解决方案,您是否尝试过 HTML 标签“”?当我使用 3rd 方应用程序时,这有时会起作用。
我在其他平台上做了一些测试,我的代码运行良好!它肯定来自我使用的解决方案。所有这些时间都白白浪费了......对不起,再次感谢您的帮助
如果您想将每个<br>
、<br/>
或<br />
转换为%0D%0A
,您可以执行var emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
这对我来说是冒号。我最终使用了 %0A%0A【参考方案2】:
根据定义mailto:
的RFC2368,并通过RFC1738 中的示例进一步加强,明确指出生成换行符的唯一有效方法是使用%0D%0A
。
这也适用于所有 url 方案,例如 gopher、smtp、sdp、imap、ldap 等。
【讨论】:
请注意,如果您使用 javascript 构建 mailto 链接,则可以使用escape('\r\n')
获取%0D%0A
。
附加说明:如果您使用 ES6/ES2015 字符串模板构建链接,原始代码 (%0D%0A
) 可以正常工作。
@MarkRhodes:由于 mailto 是一个 URI,因此您也可以使用 encodeURI(myMailToURIString),它将转义邮件正文中所需的所有字符 :-)【参考方案3】:
对于使用 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
【讨论】:
@littlecoder 因为这是一个糟糕的答案:格式差、措辞差并且忽略了基本上下文。登陆此页面的人很可能会感到困惑,因为它可以帮助他们。按照本网站的标准,它没有用处,因此已相应投票【参考方案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>
【讨论】:
您在字符串中添加“”,它在邮件正文中显示为“”。 这似乎不再适用于 Android 10 上最新的 GMail 应用程序 -<br>
将打印为“”而不是换行符。【参考方案5】:
<a href="mailto:example@gmail.com?subject=Request&body=Hi,%0DName:[your name] %0DGood day " target="_blank"></a>
尝试添加 %0D 来换行。这肯定会奏效。
上面的代码会显示如下:
Hi,
Name:[your name]
Good day
【讨论】:
【参考方案6】:这里的单行和双行换行代码如下。
单次休息:%0D0A
双休:%0D0A%0D0A
【讨论】:
请问三连休是什么? @PavelBariev %0D0A%0D0A%0D0A以上是关于在邮件正文中插入换行符的主要内容,如果未能解决你的问题,请参考以下文章