你好我是javascript和google应用程序脚本的初学者。我已经完成了通过google sheets发送电子邮件的编码,但电子邮件没有发送
这是我的代码。帮帮我你好我是javascript和google应用程序脚本的初学者。我已经完成了通过google sheets发送电子邮件的编码,但电子邮件没有发送,javascript,google-apps-script,Javascript,Google Apps Script,这是我的代码。帮帮我 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").activate(); var lr = ss.getLastRow(); var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1,1).get
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").activate();
var lr = ss.getLastRow();
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1,1).getValue();
//for (var i =2;i<=lr;i++){
var currentEmail = column(i,1);
var currentClass = column(i,3).getValues();
var currentName = ss.getRange(i,2).getValues();
var messageBody = templateText.replace("{name}",currentName).replace("{class}",currentClass);
var subjectLine = "Reminder:" + currentClass + " Upcoming Class";
MailApp.sendEmail(currentEmail,subjectLine,messageBody);
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Sheet1”).activate();
var lr=ss.getLastRow();
var templateText=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“模板”).getRange(1,1).getValue();
//对于(var i=2;假设:
代码中存在许多问题,包括未定义的变量(例如,列
,i
),但我认为您需要执行以下操作:
function yourFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Sheet1");
var firstRow = 2;
var numRows = sheet1.getLastRow() - firstRow + 1;
var templateText = ss.getSheetByName("Template").getRange(1,1).getValue();
var values = sheet1.getRange(firstRow,1,numRows,3).getValues(); // Retrieve data from all rows
values.forEach(row => { // Iterate through each row
var [currentEmail, currentName, currentClass] = row; // Get values from columns A-C
var messageBody = templateText.replace("{name}",currentName)
.replace("{class}",currentClass);
var subjectLine = "Reminder:" + currentClass + " Upcoming Class";
MailApp.sendEmail(currentEmail,subjectLine,messageBody);
});
}
为表1
中的每一行发送电子邮件,并考虑到:
收件人
位于A列
中
subject
基于列C
的值
- 消息体是通过将
{name}
和{class}
关键字分别替换为template!A1
中的字符串模板中的{name}
和C
列的值来构建的
代码段:
如果上述情况正确,您可以执行以下操作:
function yourFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Sheet1");
var firstRow = 2;
var numRows = sheet1.getLastRow() - firstRow + 1;
var templateText = ss.getSheetByName("Template").getRange(1,1).getValue();
var values = sheet1.getRange(firstRow,1,numRows,3).getValues(); // Retrieve data from all rows
values.forEach(row => { // Iterate through each row
var [currentEmail, currentName, currentClass] = row; // Get values from columns A-C
var messageBody = templateText.replace("{name}",currentName)
.replace("{class}",currentClass);
var subjectLine = "Reminder:" + currentClass + " Upcoming Class";
MailApp.sendEmail(currentEmail,subjectLine,messageBody);
});
}
参考:
i未定义,列未定义---欢迎来到StackOverFlow,请借此机会学习如何使用,您好,对您有用吗?如果是这样,请查看。