在查看了提供的使用 Google Apps 脚本从电子表格发送电子邮件的教程后,我修改了给定的代码,目的是能够发送带有附件的电子邮件集。
它运行良好,即使由于 Google Apps 脚本的限制存在一些怪癖(文件必须位于 Google Drive 中,并且 Google Drive 中的所有文件,无论名称是否合适,都取自驱动器中的所有文件夹)。
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 1; // Number of rows to process
// Fetch the range of cells A2:C3
var dataRange = sheet.getRange(startRow, 1, numRows, 3)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var attachment = row[2]; // File name provided.
var subject = "Mass Email";
var files = DriveApp.getFilesByName(attachment); // Get all files with name.
var blobs = []; // Array for attachment.
// Move files into blobs
while (files.hasNext()) {
var file = files.next();
blobs.push(file.getAs(MimeType.PLAIN_TEXT));
}
MailApp.sendEmail(emailAddress, subject, message, {
attachments: blobs, // add attachments
cc: "extra@email.com" // CC to employer
});
}
}
然而,在我第一次使用它之后,我了解到我需要发送文件不是作为附件,而是作为电子邮件的消息正文,以及其他一些更改(这是为了工作)。也就是说,我一次只会向每封电子邮件发送一个“附件”,而不是将该文件作为附件,其内容应复制到电子邮件的消息中。附件目前是文本文件,我希望它们保持这种状态,但这不是最重要的。
我无法确定使用 Google Apps 脚本执行此操作的方法。这可能吗,还是我必须以不同的方式通过电子邮件发送这些文件?(希望不是用手。)
提前致谢。