HTML mailto链接正文;前景添加不必要的换行符

时间:2015-05-26 15:52:20

标签: html html5 outlook mailto

从HTML mailto链接生成包含正文文本的电子邮件草稿时,Outlook的默认格式设置会在超过120个以换行符结尾的字符后自动添加换行符(%0D%0A )。任何人都知道如何防止这种情况发生?我的假设是,这就是Outlook的行为方式,我无法改变它,至少不是来自mailto链接。

如果您需要任何其他信息或我不清楚,请告诉我。谢谢你的时间。

编辑:示例jsfiddle:https://jsfiddle.net/q7rc1y65/2/

1 个答案:

答案 0 :(得分:0)

使用mailto:命令生成换行符的唯一有效方法是使用%0D%0A。不幸的是,Outlook会自动格式化消息,并使用换行符作为段落处理长度超过120个字符的文本。你可以按ctrl + shift + 8来看到这个。

您可以在自己的outlook See Here安装中更改此行为,但不能使用mailto:命令来控制此行为。另一种解决方案是使用电子邮件表单而不是mailto链接,然后发送电子邮件服务器端。在这里,您可以更好地控制身体的外观和结构,并且还可以创建HTML电子邮件。

以下是更新的小提示,展示了您的问题:JSFIDDLE

<a href="">MAIL!</a> 
<br /><br />
MAILTO HREF:
<div id='linkText'></div>

$().ready(function () {
    var returnChar = encodeURIComponent('%0D%0A');    
    var subject = encodeURIComponent('this is the subject');    
    var body = encodeURIComponent('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nos ');
    var bodySub120 = encodeURIComponent('Lorem ipsum dolor sit amet, consectetur adipiscing elit ');

    var href = 'mailto:someone@somewhere.com?subject=' + subject + '&body=';
    var href= href + bodySub120 + returnChar + bodySub120 + returnChar + body + returnChar + body + returnChar;
    $('a').attr("href", href);
    $('div#linkText').text(href);
});