我是编码的新手,想自动发送带有附件的电子邮件。基本上,我想做的是将邮件和Google云端硬盘附件发送到电子表格中的特定电子邮件地址。每个电子邮件地址的每个附件(Google驱动器链接)都不相同,我在电子表格中列出了所有内容。
电子表格由三张纸组成,我只想从第一张纸中获取信息(称为完整数据)。列的结构如下:
- A1全名
- B1名
- C1姓氏
- D1电子邮件地址
- E1文件附件(Google驱动器链接)
- F1日期
- G1状态
- H1消息
- 已发送I1电子邮件吗?
我想发送一封电子邮件,其模板以“ Hello {Full Name}”开头,并在下面的行中开始显示消息。
这是我现在拥有的代码:
// This constant is written in column C for rows for which an email
// 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 numRows = sheet.getLastRow() - startRow + 1; // Number of rows to process
var startCol = 1;
var numCols = 4; // Number of columns to process (should include column D)
// Fetch the range of cells A2:D
var dataRange = sheet.getRange(startRow,startCol,numRows,numCols);
var data = dataRange.getvalues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailaddress = row[3]; // Third column
var message = row[7]; // Eigth column
var emailSent = row[8]; // Ninth column
if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
var subject = 'Sending emails from a Spreadsheet';
MailApp.sendEmail(emailaddress,subject,message);
sheet.getRange(startRow + i,8).setvalue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
Spreadsheetapp.flush();
}
}
}
我意识到我没有为附件设置变量。附件应取自E列(对应于该行)。例如,A2中的John Apple在E2中具有附件X,而A3中的Mick Orange在E3中具有附件Y,依此类推...数据范围缩小到130行,但是总能得到一些东西会很棒直到有数据为止的范围(无论行数如何)。
有人对如何进行这项工作有想法吗?
非常感谢!