Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何在谷歌表单上发送有条件的电子邮件警报?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何在谷歌表单上发送有条件的电子邮件警报?

Google apps script 如何在谷歌表单上发送有条件的电子邮件警报?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在我的谷歌工作表上设置了一个电子邮件提醒,如果其中一列中的值低于2,我的邮件会收到一个电子邮件提醒。 我有多个域名,每天检查域名的有效期是非常繁琐的。我创建了一张表格,其中我列出了域名、注册商、托管、今天日期、到期日期、到期剩余天数。现在,我想在“到期剩余天数列”上创建一个警报,以便在剩余天数少于2天时,向我的电子邮件地址列表发送警报电子邮件 我已经做的是为一个单元格值获取一封电子邮件,但我想做的是获取整列或多个列值 function CheckSales() { // Fetch th

我在我的谷歌工作表上设置了一个电子邮件提醒,如果其中一列中的值低于2,我的邮件会收到一个电子邮件提醒。 我有多个域名,每天检查域名的有效期是非常繁琐的。我创建了一张表格,其中我列出了域名、注册商、托管、今天日期、到期日期、到期剩余天数。现在,我想在“到期剩余天数列”上创建一个警报,以便在剩余天数少于2天时,向我的电子邮件地址列表发送警报电子邮件

我已经做的是为一个单元格值获取一封电子邮件,但我想做的是获取整列或多个列值

 function CheckSales() {
  // Fetch the values
  var domainexpireRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("domain list").getRange("F2"); 
  var domainexpire = domainexpireRange.getValues();

  // Check domain expiring
  if ( domainexpire < 2){
    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Company emails").getRange("B2:B4");
    var emailAddress = emailRange.getValues();

    // Send Alert Email.
    var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
    var subject = '2019 smtp Domain Expiring';
    MailApp.sendEmail(emailAddress, subject, message);

  }
}
功能检查销售(){
//获取值
var domainexpireRange=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“域列表”).getRange(“F2”);
var domainexpire=domainexpirelange.getValues();
//检查域是否过期
如果(域名过期<2){
var emailRange=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“公司电子邮件”).getRange(“B2:B4”);
var emailAddress=emailRange.getValues();
//发送提醒电子邮件。
var message='2019 smtp域将在两天后过期。请检查域表';//第二列
var subject='2019 smtp域到期';
MailApp.sendmail(电子邮件地址、主题、消息);
}
}
我有一个有多行和多列的工作表,我要做的是检查F列,如果F列上的任何值小于2,则向我的电子邮件地址发送一封警报电子邮件。 如果我将代码复制粘贴到多次并将“getRange(“F2”);”更改为F2、F3、.F100,我的代码工作正常。 但这并不是一个好的编码方式。谁能告诉我是否可以编辑一些代码并得到结果

我试着使用“getRange”(“F2:F”);&getRange(“F2:F54”);但它没有成功


感谢您的帮助。

尝试使用for语句在整个工作表中循环,下面的语句应该可以工作:

function checkSales() {

  // Fetch the values    
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("domain list");
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();

  // loop through each row starting at row 2
  for (var i = 1; i < data.length; i++) {
    var domainExpire = data[i][5];

    // Check domain expiring
    if (domainExpire < 2) {
      var emailRange = spreadsheet.getSheetByName("Company emails").getRange("B2:B4");
      var emailAddress = emailRange.getValues();

      // Send Alert Email.
      var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
      var subject = '2019 smtp Domain Expiring';

      MailApp.sendEmail(emailAddress, subject, message); 
    }
  }
}
功能检查销售(){
//获取值
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet=电子表格.getSheetByName(“域列表”);
var dataRange=sheet.getDataRange();
var data=dataRange.getValues();
//从第2行开始循环遍历每一行
对于(变量i=1;i
试试这个:

function CheckSales() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('domain list');
  var domainexpireRange=sh.getRange(1,6,sh.getLastRow()-1,1);
  var domainexpire=domainexpireRange.getValues();
  for(var i=0;i<domainexpire.length;i++) {
    // Check domain expiring
    if (domainexpire[i][5]<2){
      var emailRange=ss.getSheetByName("Company emails").getRange("B2:B4");
      var emailAddress=emailRange.getValues().map(function(r){return r[0];}).join(',');
      // Send Alert Email.
      var dateString=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy");
      var message=Utilities.formatString('%s smtp Domain Expiring in two days. Please check the sheet domain sheet.',dateString);
      var subject=Utilities.formatString('%s smtp Domain Expiring',dateString);
      MailApp.sendEmail(emailAddress, subject, message);
    }
  }
}
功能检查销售(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName(“域列表”);
var domainexpireRange=sh.getRange(1,6,sh.getLastRow()-1,1);
var domainexpire=domainexpirelange.getValues();

对于(var i=0;我猜,您可以循环浏览列[可能累积所有即将到期的域]并发送电子邮件。非常感谢..工作正常..刚刚制作了一个编辑var spreadsheet=SpreadsheetApp.getActiveSpreadsheet();而不是var spreadsheet=SpreadsheetApp.getActiveSpreadsheet;感谢Ross的回答:):)没问题&oops!我刚刚编辑了解决方案,为其他想要使用它的人添加了括号。