MailApp.sendEmail功能运行时没有错误,但不会发送电子邮件
下面的脚本运行时没有任何可见错误,但不会发送电子邮件。你知道为什么吗MailApp.sendEmail功能运行时没有错误,但不会发送电子邮件,email,google-apps-script,google-sheets,Email,Google Apps Script,Google Sheets,下面的脚本运行时没有任何可见错误,但不会发送电子邮件。你知道为什么吗 function sendEmailLoop() { var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); sheets.forEach(function(sheet) { var range = sheet.getDataRange(); if (sheet.getName() == "Summary") //Disre
function sendEmailLoop() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function(sheet) {
var range = sheet.getDataRange();
if (sheet.getName() == "Summary") //Disregard tab named 'Summary'
{
}
else {
var range = sheet.getDataRange(); //to set the range as array
var values = range.getDisplayValues(); //to get the value in the array
var lastRow = range.getLastRow();
var ss = SpreadsheetApp.getActiveSpreadsheet(); //declare the spreadsheet
var sheet = ss.getSheetByName("Sheet1");
var Title = values[0][0]; //[Title] cell A1
var URL = values[0][1]; //[URL] cell B1
var i;
var logContent = '';
for (i = 3; i < lastRow; i++) {
var Name = values[i][0]; //[Name] cell A++
var Email = values[i][1]; // [Email] cell B++
Logger.log('to: ' + Email);
Logger.log('subject: ' + Name + Title + 'Test');
Logger.log('message: ' + 'This is a test message for the training that can be found at ' + URL);
/*
MailApp.sendEmail({
to: Email,
subject: Name + Title + 'Test',
message: 'This is a test message for the training that can be found at ' + URL});
*/
}; //end for loop - email tab data
}; // end 'else'
}); // end function(sheet)
} // end SendEmailLoop()
函数sendEmailLoop(){
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
表.forEach(功能(表){
var range=sheet.getDataRange();
if(sheet.getName()=“Summary”)//忽略名为“Summary”的选项卡
{
}
否则{
var range=sheet.getDataRange();//将范围设置为数组
var values=range.getDisplayValues();//获取数组中的值
var lastRow=range.getLastRow();
var ss=SpreadsheetApp.getActiveSpreadsheet();//声明电子表格
var sheet=ss.getSheetByName(“Sheet1”);
变量标题=值[0][0];//[Title]单元格A1
var URL=值[0][1];//[URL]单元格B1
var i;
var logContent='';
对于(i=3;isheets.forEach()
方法调用(即,循环遍历电子表格的每个选项卡),并且电子邮件发送正常
发送或接收电子邮件的减少是否与我有很多工作表,并且此功能正在循环使用有关?回答:
您需要取消对MailApp
代码的注释
代码更改:
我测试了你的代码,它对我来说似乎没有问题,包括收到电子邮件,只是需要删除你的MailApp
呼叫周围的代码注释(/*
和*/
)
我还建议在事件中发送电子邮件之前添加一个条件行。getDataRange()
获取看似空的行:
if (Email == "") {
continue;
};
MailApp.sendEmail({
to: Email,
subject: Name + Title + 'Test',
message: 'This is a test message for the training that can be found at ' + URL});
我希望这对你有帮助
参考资料:
函数sendmailloop(){
变量惊叹号=['Summary'];
var ss=SpreadsheetApp.getActive();
var sheets=ss.getSheets();
表.forEach(功能(表){
如果(惊叹.indexOf(sheet.getName())=-1){
var range=sheet.getDataRange();
var values=range.getDisplayValues();
var lastRow=range.getLastRow();
var Title=值[0][0];
var URL=值[0][1];
var logContent='';
对于(var i=3;我只是注意到您可能已经意识到了-小心,就像您所做的那样(M-1)*(N-3)每次运行的发送量(其中M是#张数,N是#行数),它可能会很快失控。是的-谢谢您的格式修复和配额说明。我的用例应该很好地符合配额-不过请注意。只是一条信息(虽然在文档中相对模糊)以保持跟踪(虽然配额通常对于一般用例来说是足够的)。顺便说一句,另一个旁注(关于代码样式)-如果可能,请不要使用句子大小写的var名称(通常它们指定“类”[因为JS有它们])-此处不相关,但可能会在游戏后期引起混乱非常有用-我又犯了一个愚蠢的错误。现在在这个脚本中一切正常。我感谢你的帮助!@KMB他们为什么评论,是谁评论的?
function sendEmailLoop() {
var exclA=['Summary'];
var ss=SpreadsheetApp.getActive();
var sheets=ss.getSheets();
sheets.forEach(function(sheet) {
if (exclA.indexOf(sheet.getName())==-1) {
var range=sheet.getDataRange();
var values=range.getDisplayValues();
var lastRow=range.getLastRow();
var Title=values[0][0];
var URL=values[0][1];
var logContent='';
for (var i=3; i <values.length; i++) {
var Name=values[i][0];
var Email=values[i][1];
Logger.log('to: %s\nsubject: %s %s Test\nmessage: %s This is a test message for the training that can be found at %s',Email,Name,Title,URL);
/*
MailApp.sendEmail({
to: Email,
subject: Name + Title + 'Test',
message: 'This is a test message for the training that can be found at ' + URL});
*/
}
}
});
}