【问题标题】:HTML mailto link with body text; outlook adding unwanted line breakHTML mailto 链接正文; Outlook 添加不需要的换行符
【发布时间】:2015-08-08 09:50:11
【问题描述】:

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

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

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

【问题讨论】:

  • 您无需提供代码,否则会导致失败,以便我们与您一起调查。但要知道的是,每个电子邮件客户端与 css 的工作方式不同,如 campaignmonitor.com/css

标签: html outlook mailto


【解决方案1】:

使用 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);
});

【讨论】:

  • 抱歉,我忽略了通过添加换行符来结束行时会发生这种情况。我现在将编辑我的帖子。我修改了您的示例以显示这一点:jsfiddle.net/q7rc1y65/2 请注意少于 120 个字符的行与不少于 120 个字符的行之间的行为差​​异。
  • 我能够重现您的问题。使用 cntrl+shift+8 我可以看到 Outlook 选择将您的回车换行视为一个段落。我认为不可能按照您的要求进行操作。请参阅上面的答案以获取替代方案。
猜你喜欢
  • 2017-07-03
  • 2014-09-09
  • 2010-09-19
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
相关资源
最近更新 更多