使用 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。
我找到了一个 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。