Google Apps Script中第二个MailApp.sendEmail报错无收件人,求排查
解决MailApp.sendEmail报“no recipient”异常的问题
你的脚本中第二个MailApp.sendEmail报错的核心原因是数组元素的索引写法错误,导致无法正确获取用户邮箱地址mailPers,最终触发“无收件人”的异常。
问题代码分析
在循环中你使用了row[i,0]、row[i,10]这类语法,但JavaScript里数组元素的访问应该用row[索引值]的形式。row[i,0]这种写法实际利用了逗号运算符,最终等价于row[0],随着循环变量i递增,这种写法会导致你无法正确获取当前行对应列的数值——当i的值超过当前行数组的长度时,会直接返回undefined,这就导致mailPers为空或未定义,触发邮件发送失败。
修正后的代码
把所有错误的数组索引写法改成正确的row[列索引]形式:
function sendEmails(){ // Recuperiamo il foglio di calcolo attivo var sheet = SpreadsheetApp.getActiveSheet(); var emailAddress = "nomm123@gmail.it"; var subject = "Documento in scadenza"; // Definiamo la riga iniziale come la seconda riga var startRow = 10; // Calcoliamo il numero di righe presenti nel foglio var numRows = sheet.getLastRow() - 3; // Recuperiamo la gamma di dati compresa tra la riga iniziale e il numero di righe calcolato var dataRange = sheet.getRange(startRow, 1, numRows, 11) // Recuperiamo i valori da quella gamma di dati var data = dataRange.getValues(); //Iteriamo attraverso i valori per inviare l'e-mail a ciascun indirizzo presente nella colonna A for (var i = 0; i < data.length; ++i){ var row = data[i]; var nome = row[0]; // 修正索引:取当前行第1列(索引0) var cognome = row[1]; // 修正索引:取当前行第2列(索引1) var doc = row[2]; // 修正索引:取当前行第3列(索引2) var mailPers = row[10]; // 修正索引:取当前行第11列(索引10) Logger.log(mailPers); var scadenza = new Date(row[4]); // 修正索引:取当前行第5列(索引4) var alert = new Date(row[4]); // 修正索引:取当前行第5列(索引4) alert.setDate(alert.getDate() - 30); var oggi = new Date(); if (alert <= oggi){ var message = "Attenzione: " + doc + " di " + cognome + " " + nome + " scade il " + scadenza; var userMessage = "Attenzione: il tuo documento " + doc + " scadrà in data " + scadenza; Logger.log(message) MailApp.sendEmail(emailAddress, subject, message); // 现在mailPers能正确获取到邮箱地址,不会再触发无收件人异常 MailApp.sendEmail(mailPers, subject, userMessage); } } }
补充说明
- 第一个邮件发送正常是因为它使用的是硬编码的
emailAddress,不受数组索引错误的影响; - 你可以查看之前的
Logger.log(mailPers)输出,应该会显示undefined或空值,这也验证了邮箱地址未被正确获取。
内容的提问来源于stack exchange,提问作者Gianmarco Bertin
相关产品推荐
相关产品推荐

