使用G脚本自动将Google表格附加到Gmail的电子邮件中

时间:2019-06-17 20:24:50

标签: google-apps-script gmail

我发现了一个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:未定义“驱动器”。 (第17行,文件“代码”)

2 个答案:

答案 0 :(得分:1)

“驱动器”是高级驱动器API。要使用驱动器高级API,您需要启用该API。但是您这里真的不需要高级API。

您的文件是否在驱动器中?

如果是这样,请尝试以下操作:

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

“ xxx”应该是驱动器ID。

答案 1 :(得分:0)

根据reference documentation,看起来您正在寻找的类是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]});
  }
}