首页 > 解决方案 > 如何阻止 MailApp.sendEmail() 每 80 个字符向电子邮件正文添加换行符?

问题描述

我正在使用附加到 Google Drive 中的 google 表格的 google 脚本来发送电子邮件。我注意到 MailApp.sendEmail() 发送的电子邮件的正文看起来不太像原来的:它每 75 个字符添加一个换行符(不打断单词)。

如何阻止 MailApp.sendEmail() 函数这样做?

这里有一个例子来说明:

运行此功能:

function sendTestEmail(){
  var text = "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 nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
  MailApp.sendEmail("test@gmail.com", "test", text);
}

会给一个看起来像这样的电子邮件

万一有用,我测试了一下:一个 76 个字符的句子保留在一行(不再),但是添加一个额外的单词会使这个新句子的最后两个单词换行。

非常感谢提前!

编辑 1:这些换行符不会出现在 mac 邮件或 Thunderbird 中,但会出现在 iphone gmail 应用程序中。

我还尝试使用 html 而不是纯文本,它确实删除了不需要的换行符:太棒了!但它也会删除所有换行符,除非我<br>手动输入。

标签: emailgoogle-apps-script

解决方案


我可能需要微调细节,但正如建议的那样,以下对我有用。需要使我可能故意放入的text.replace换行符出现在 html 电子邮件中。

function sendTestEmail(){
  var text = '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 nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
  var htmlText = text.replace(/\n/g,'\n<br>');
  MailApp.sendEmail({
    to: "test@gmail.com",
    subject: "test", 
    htmlBody: htmlText,
  });

推荐阅读