我正在尝试创建一个电子表格应用脚本,该脚本将电子邮件发送给不同的用户,以通知他们做某事。
当然,我让它发送电子邮件,但是我不能让它发送提到同一封邮件的单元格数量的计数,因此将向用户通知他们必须处理的任务数量。
另一方面,我正在努力使脚本仅向用户发送一封电子邮件。
这是我要编写的代码:
var enviado = 'ok';
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 1000;
// Rango J2:J
var dataRange = sheet.getRange(startRow, 9, numRows, 4);
var data = dataRange.getValues();
var nextEmail = '';
for (var i = 0; i < data.length; ++i) {
if (i < data.length - 1) {
nextEmail = data[i+1][11] //busca la siguiente fila, en la columna 11
}
else { //si i es la fila máxima
nextEmail = ''
}
var row = data[i];
var registrado = row[1];
var name = row[0]
var emailAddress = row[2];
var contarMails = 0;
for (var mails in emailAddress) {
if (emailAddress[mails][0] == emailAddress) { //Here's where I'm stuck
contarMails++;
};
};
var mensaje =
'<p>¡Hola, '+name+'!</p>'+
'<br>Tenés '+contarMails+' <strong>partida(s) no conciliada(s)</strong> asignada(s) en la Planilla Conciliaciones bancarias.</br><br></br>'+
'<br>Ingresá al archivo para revisar: </br>'+'<a href="https://docs.google.com/spreadsheets/d/1kzaDQSMDwi_SFKaB4SDVYraeS8wqMjIVl_Tt20wfX1o/">Planilla Conciliaciones bancarias</a>'
var mailEnviado = row[3];
if (mailEnviado !== enviado) { // Previene el envío de duplicadios
var asunto = 'Notificación PNC - Conciliaciones bancarias';
if (emailAddress !== "" && mailEnviado !== enviado && nextEmail !== emailAddress){ //esto deberia evitar el envio de multiples mails a un mismo destinatario, pero no funciona
if (registrado == false) {
MailApp.sendEmail({
to: emailAddress,
subject: asunto,
htmlBody: mensaje,
noReply: true
});
sheet.getRange(startRow + i, 12).setValue(enviado);
// Asegura que la celda se complete automaticamente por si el script se detiene
SpreadsheetApp.flush();
}
}
}
}
}
感谢您的帮助
谢谢!
刚注意到一个问题
var dataRange = sheet.getRange(startRow, 9, sheet.getLastRow()-startRow+1, 4);
上面的行创建了从I列到L列的范围
var data = dataRange.getValues();
所以上一行的数据只有4列宽的索引0、1、2、3
var nextEmail = '';
for (var i=0;i<data.length;++i) {
if (i < data.length - 1) {
因此没有数据[i + 1] [11]
nextEmail = data[i+1][11]
} else {
nextEmail = ''
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句