簡體   English   中英

如何在谷歌表上發送有條件的電子郵件警報?

[英]How to send conditional email alert on google sheet?

我正在我的 google 表格上設置電子郵件警報,其中如果一列中的值低於 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);

  }
}

我有一張有多行多列的工作表,我想要做的是檢查 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); 
    }
  }
}

嘗試這個:

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);
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM