簡體   English   中英

當單元格為特定值時從 Google Sheet 發送電子郵件

[英]Send email from Google Sheet when cell is certain value

以下是我正在嘗試為其工作的工作表示例: https : //docs.google.com/spreadsheets/d/1M79ki9QVRkfkfkwy1uWyNAVddeyPpcvqDppi3Et-b-cLw/edit?usp=sharing

目標是當 I 列大於 2 且 K 列為空時發送電子郵件。 第 I 列是基於 CH 列的計數公式,這些列是手動填寫的。

這是我的腳本,但它似乎不起作用:

function sendEmail() {
  
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Workable");

  var listing_id = sheet.getRange("B:B").getValues();
  var flag_count = sheet.getRange("I:I").getValues();
  var action_type = sheet.getRange("K:K").getValues();

  var subject = 'New Listing Flagged';
  var message = 'Listing' + listing_id + 'has been flagged. Please resolve ASAP in the QA Google Sheet. Thank you!';
  var email_address = 'allyson@hipcamp.com';

  if (flag_count > 2 && action_type == ""){MailApp.sendEmail(email_address, subject, message)}
}

我需要改變什么才能使它工作?

我在示例表中找到了您的最新代碼。 由於您已決定使用 onEdit 觸發器,因此您需要使用可安裝的 onEdit 觸發器,因為您使用的是需要授權的MailApp.sendEmail()服務。

先決條件(可安裝觸發器):

在此處輸入圖片說明

在此處輸入圖片說明


示例代碼:

function sendNotification1(e) {
  Logger.log(JSON.stringify(e));
  var ss = SpreadsheetApp.getActiveSpreadsheet();   
  var sheet = ss.getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  var startRow = 2;
  var startCol = 3; //Column C
  var endCol = 8; //Column H

  if(sheet.getName() == "Workable"
    && col >= startCol
    && col <=  endCol
    && row >= startRow
    && sheet.getRange(row,9).getValue() > 2 //flag_count column > 2
    && sheet.getRange(row,11).getValue() == "" //action column null
    )
  {
    var campground_id = sheet.getRange(row,2).getValue();
    var email = 'your@email.com';
    var subject = "New Listing Flagged for Fraud";
    var body = 'Campground ' + campground_id + ' has been flagged for fraud. Please resolve ASAP in the QA Google Sheet. Thank you!';
    MailApp.sendEmail(email, subject, body);
  }
 }

它能做什么?

  1. 您的 I 列值取決於 CH 列中提供的值。 因此,您的觸發器應該是 CH 列(列索引 3-8)中完成的值更改。 我添加了一個額外的條件來檢查當前活動的工作表,以驗證修改后的單元格在工作表Workable 如果大於 2,則檢查列 I 中的值。最后,檢查列 K 是否為空/空
  2. 發送電子郵件

輸出:

在此處輸入圖片說明

在此處輸入圖片說明

(更新)

包含的復選框列將用作檢查器按鈕以觸發電子郵件通知。

示例代碼:

function sendNotification(e) {
  Logger.log(JSON.stringify(e));
  var ss = SpreadsheetApp.getActiveSpreadsheet();   
  var sheet = ss.getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  var startRow = 2;

  if(sheet.getName() == "Workable"
    && col == 9
    && row >= startRow
    && sheet.getRange(row,9).isChecked()
    && sheet.getRange(row,10).getValue() > 2 //flag_count column > 2
    && sheet.getRange(row,12).getValue() == "" //action column null
    )
  {
    var campground_id = sheet.getRange(row,2).getValue();
    var email = 'your@email.com';
    var subject = "New Listing Flagged for Fraud";
    var body = 'Campground ' + campground_id + ' has been flagged for fraud. Please resolve ASAP in the QA Google Sheet. Thank you!';
    MailApp.sendEmail(email, subject, body);
  }
 }

樣品表:

在此處輸入圖片說明

暫無
暫無

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

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