【问题标题】:Customizing cell format/script when sending emails from Gsheets?从 Gsheets 发送电子邮件时自定义单元格格式/脚本?
【发布时间】:2020-04-21 19:38:15
【问题描述】:

有谁知道在从谷歌表格发送电子邮件时如何在脚本或单元格公式中自定义电子邮件正文的格式?

第一个附件是脚本发送的错误电子邮件正文

第二个附件是正确的电子邮件正文格式,我需要脚本发送 .

代码如下:

// has been sent successfully.
var EMAIL_SENT = 'EMAIL_SENT';

/**
 * Sends non-duplicate emails with data from the current spreadsheet.
 */
function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 1000; // Number of rows to process
  // Fetch the range of cells A2:D1000
  var dataRange = sheet.getRange(startRow, 1, numRows, 1000);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var subject = row[3]; // Second column
    var message = row[3]; // Third column
    var emailSent = row[3]; // Fourth column
    if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

【问题讨论】:

  • @BigBen 编辑了正确的照片。对此感到抱歉。
  • 我必须为我糟糕的英语水平道歉。不幸的是,我无法理解 customize the format of an email body in a script or within the cell formula 和您的 2 张图片。我可以问你问题的细节和你的目标吗?
  • 不确定应该如何格式化。你的意思是换行吗?您能否分享您正在处理的电子表格,以便可以看到原始数据格式?
  • @lamblichus 这是表格:docs.google.com/spreadsheets/d/…

标签: email google-apps-script google-sheets


【解决方案1】:

问题:

将纯文本添加到电子邮件正文时,在约 78 个字符后添加换行符,例如,您可以在此处看到:Gmail API - plaintext word wrapping

为避免这种情况,您应该添加 HTML 正文而不是纯文本,使用 MailApp.sendEmail(recipient, subject, body, options)

此外,如果您想保持单元格值 (\n) 的换行符,则需要添加 HTML 换行符 (&lt;br&gt;)。你可以使用String.prototype.replace()

解决方案:

替换这个:

MailApp.sendEmail(emailAddress, subject, message);

为此:

MailApp.sendEmail(emailAddress, subject, "", {
  htmlBody: message.replace(/\n/g,'<br>')
});

参考:

【讨论】:

  • @lamblichus 您是否也知道如何在电子邮件正文中超链接文本?
  • @MattStapleton 在 HTML 中,链接是用anchor tags 添加的,但是如何用它替换单元格超链接取决于单元格中超链接的设置方式。为此需要更多信息。如果您对此有疑问,我建议您发布一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多