使用 G 脚本自动将 Google Sheet 附加到来自 Gmail 的电子邮件

Attaching Google Sheet to emails from Gmail automatically using G Script

我找到了一个 G 脚本,它可以根据名称为 excel 的文件(如有必要,我可以将其转换为表格)向数百个地址发送电子邮件。

我希望能够向发送的每封电子邮件添加附件(目前是 excel 文件,但可以轻松转换为表格)。每封电子邮件的附件都是相同的。

下面的脚本可用于发送电子邮件,但我找不到向每封电子邮件添加附件的正确方法(注意:第 17 行是我收到错误代码的地方)。

我已经尝试了几个基于此站点上其他类似字符串的不同版本 - 但我无法让它适应我的情况,或者我可能不明白如何相应地构建语法。

/**
 * Sends emails with data from the current spreadsheet.
 */
 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:B2
var dataRange = sheet.getRange(startRow, 1, numRows, 1);
// 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 subject = 'Sending emails from a Spreadsheet'
var file = Drive.Files.get('test123/xlsx');
 MailApp.sendEmail(emailAddress, subject, message, {attachments: 
  [file]});
   }
  }

ReferenceError: "Drive" is not defined. (line 17, file "Code")

根据 reference documentation,您要查找的 class 似乎是 DriveApp。

/**
 * Sends emails with data from the current spreadsheet.
 */
 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:B2
  var dataRange = sheet.getRange(startRow, 1, numRows, 1);
  // 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 subject = 'Sending emails from a Spreadsheet';
    var file = DriveApp.getFileById('test123/xlsx');
    MailApp.sendEmail(emailAddress, subject, message, {attachments: 
  [file]});
  }
}

"Drive" 是 Advanced Drive API.In 为了使用 Drive advanced api 你需要启用那个 api。但是你真的不需要这里的高级api。

你的文件在驱动器中吗?

如果是,试试这个:

var file = DriveApp.getFileById("XXXXXXXXXXX");

"xxx" 应该是驱动器 ID。