从Google表格发送电子邮件时,是否有人知道如何在脚本中或单元格公式中自定义电子邮件正文的格式?
以下代码:
// 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();
}
}
}
答案 0 :(得分:1)
将纯文本添加到电子邮件正文时,在〜78个字符后添加换行符,例如,您可以在此处看到Gmail API - plaintext word wrapping。
为避免这种情况,您应该使用MailApp.sendEmail(recipient, subject, body, options) 添加HTML正文而不是纯文本。
此外,如果要根据单元格值(<br>
来保持换行符,则需要添加HTML换行符(\n
)。您可以为此使用String.prototype.replace()。
替换此:
MailApp.sendEmail(emailAddress, subject, message);
为此:
MailApp.sendEmail(emailAddress, subject, "", {
htmlBody: message.replace(/\n/g,'<br>')
});