【问题标题】:Google Scripts Sending email as plain text, not HTML谷歌脚本以纯文本形式发送电子邮件,而不是 HTML
【发布时间】:2021-01-05 15:11:41
【问题描述】:

目前,当我使用以下脚本发送电子邮件时,电子邮件将被格式化为在 70 个字符后开始新行。我相信这是因为电子邮件是以纯文本而不是 HTML 形式发送的。

如何将邮件转换为 HTML 以便更好地阅读,而无需换行?

var data = dataRange.getValues();
for (var i in data) {
  var row = data[i];
  var emailAddress = row[3]; 
  var message = row[5] + "\n\nTEST\n\nTEST"; 
  var subject = row[4];

  MailApp.sendEmail(emailAddress, subject, message);
  sheet.getRange(startRow + i - 18, 8).setValue(EMAIL_SENT);
  sheetC.getRange(startRow + i - 18, 3).setValue(EMAIL_SENT);
  SpreadsheetApp.flush();
}

对脚本相当陌生,因此我们将不胜感激!

【问题讨论】:

    标签: javascript html google-apps-script google-sheets


    【解决方案1】:

    说明:

    需要注意的两点:

    1. 您需要添加一个可选参数,即htmlBody:

      MailApp.sendEmail(emailAddress, subject, message,{htmlBody:message});

    2. 使用您当前的解决方案并将\ns 替换为<br> html 标记:

      var message = message.replace(/\n/g, '<br>');

    简单示例:

    function myFunction(){
        var emailAddress = "example@gmail.com"
        var message = "\n\nTEST\n\nTEST"; 
        var subject = "test";
        var message=message.replace(/\n/g, '<br>');
        MailApp.sendEmail(emailAddress, subject, message,{htmlBody:message});
      }
    

    解决方案:

      var data = dataRange.getValues();
      for (var i in data) {
        var row = data[i];
        var emailAddress = row[3]; 
        var message = row[5] + "\n\nTEST\n\nTEST"; 
        var message = message.replace(/\n/g, '<br>');
        var subject = row[4];
        MailApp.sendEmail(emailAddress, subject, message,{htmlBody:message});
        sheet.getRange(startRow + i - 18, 8).setValue(EMAIL_SENT);
        sheetC.getRange(startRow + i - 18, 3).setValue(EMAIL_SENT);
        SpreadsheetApp.flush();
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 2015-09-19
      • 1970-01-01
      • 2012-04-29
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多