如何在邮件中添加换行?mailto链接中<br>标签失效问题求助
解决mailto链接中邮件内容换行的问题
嘿,我之前也踩过这个坑!你用的<br>标签是HTML格式的换行,但mailto协议的body参数只认纯文本换行符,HTML标签在这里是不会被解析的。下面给你两种靠谱的解决方法:
方法一:使用URL编码的回车+换行(兼容性最好)
直接把<br>替换成%0D%0A——这是URL编码后的\r\n(Windows风格换行),几乎所有邮件客户端(包括Gmail、Outlook、Apple Mail)都能正确识别。修改后的代码如下:var link = "mailto:example@gmail.com" + "?cc=myCC@gmail.com" + "&subject=" + encodeURIComponent("Order") + "&body=" + encodeURIComponent("Some random send string ") + "%0D%0A" + encodeURIComponent("Some more send string"); window.location.href = link;方法二:直接在字符串里用换行符(更直观)
如果你用ES6+的模板字符串,可以直接在内容里换行,encodeURIComponent会自动把换行符转换成对应的URL编码:var link = `mailto:example@gmail.com?cc=myCC@gmail.com&subject=${encodeURIComponent("Order")}&body=${encodeURIComponent(`Some random send string Some more send string`)}`; window.location.href = link;
需要注意的是,尽量不要混用HTML标签和纯文本换行,因为有些客户端可能会把<br>当成普通文本显示出来。用上面两种方法就能实现可靠的换行效果啦!
内容的提问来源于stack exchange,提问作者mm4096
相关产品推荐
相关产品推荐

