2016-04-06 56 views
0

我得到的错误,当我运行下面的代码:错误:“无法发送电子邮件:无收件人”

Failed to send email: no recipient

这是正在流失或谷歌电子表格。我假设它将在电子邮件地址栏中查找电子邮件地址,并在它读取最后一个电子邮件地址后,它将转到下一个空白单元格,并且看不到任何内容,然后发出错误消息。

如果是这样的话,我怎样才能让它停止查找电子邮件地址,当它到列中的最后一个?

的错误是在第18行:MailApp.sendEmail(emailAddress, subject, message);

var EMAIL_SENT = "EMAIL_SENT"; 

function sendEmails2() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheets = ss.getSheets(); 
    var startRow = 2; 
    var numRows = 1000; 
    var sheet = ss.getSheetByName ('Administrators') 
    var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn()); 
    var data = dataRange.getValues(); 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var emailAddress = row[1]; 
    var message = row[28];  
    var emailSent = row[29]; 
    if (emailSent != EMAIL_SENT) { 
     var subject = "Tuition Reimbursement Status"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 30).setValue(EMAIL_SENT); 


    var sheet = ss.getSheetByName ('Teachers') 
    var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn()); 
    var data = dataRange.getValues(); 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var emailAddress = row[1]; 
    var message = row[28];  
    var emailSent = row[29]; 
    if (emailSent != EMAIL_SENT) { 
     var subject = "Tuition Reimbursement Status"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 30).setValue(EMAIL_SENT); 


    var sheet = ss.getSheetByName ('Support Staff') 
    var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn()); 
    var data = dataRange.getValues(); 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var emailAddress = row[1]; 
    var message = row[28];  
    var emailSent = row[29]; 
    if (emailSent != EMAIL_SENT) { 
     var subject = "Tuition Reimbursement Status"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 30).setValue(EMAIL_SENT); 



     SpreadsheetApp.flush(); 
     } 
    } 
    } 
    } 
    } 
} 
} 

回答

0

你应该numRows行使用getLastRow()功能 [Ref]将其设置为1000

+0

这是它的设置,而不是!非常感谢! –

+0

很高兴帮助:) – Chris