我可以使用Google Spreadsheet一次发送多封电子邮件。
现在,我正在尝试使用已发送电子邮件的信息设置一个单元格。
function enviar() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var contact = range.getValues()
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6])
email[7].setValue("enviado")
email[7].setBackground("green")
email[7].setFontColor("white")
}
}
问题出在以下三行:
email[7].setValue("enviado")
email[7].setBackground("green")
email[7].setFontColor("white")
除了以下以外,我找不到其他方法:
SpreadsheetApp.getActiveSheet().getRange("H2")
另一个想法是:
range[0].getRange()[7].setValue("enviado")
他们都没有工作。
答案 0 :(得分:3)
使用共享电子表格时,我可以在下面理解。
send()
时,您要发送包含从每一行检索到的值的电子邮件。如果我的理解是正确的,那么该修改如何?
GmailApp.sendEmail()
上方的脚本很好。range
检索到的sheet.getActiveRange()
。function send() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var contact = range.getValues()
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6]);
}
range.offset(0, 7, range.getNumRows(), 1).setValue("sent"); // Added
}
offset(0, 7, range.getNumRows(), 1)
表示列“ H”的范围。
如果要发送电子邮件并仅选择1列来设置状态,该脚本如何?在此脚本中,例如,选择“ A2:A3”或“ C2:C3”,发送具有从每一行检索到的值的电子邮件,并将“已发送”放入“ H2:H3”。
function send() {
var app = SpreadsheetApp
var sheet = app.getActiveSheet()
var range = sheet.getActiveRange()
var rng = sheet.getRange(range.getRow(), 1, range.getNumRows(), 7); // Added
var contact = rng.getValues(); // Modified
for (var i = 0; i < contact.length; i++) {
var email = contact[i]
GmailApp.sendEmail(email[3], email[5], email[6]);
}
rng.offset(0, 7, range.getNumRows(), 1).setValue("sent"); // Added
}