簡體   English   中英

添加新行時發送 Email(Google App 腳本和 Google 表格)

[英]Send Email When New Rows Are Added (Google App Script & Google Sheets)

我有一個包含 4 列的谷歌表; 標題,url,發布日期和 email 已發送(按該順序)。

當新行添加到工作表時,我想執行一個谷歌腳本,該腳本將查看“已發送電子郵件”列以查看是否已發送 email,如果未發送,則發送包含新行的 email 並更新相關行) 是的。

我當前的代碼只得到第一行,沒有別的。

提前致謝,

標記

在此處輸入圖像描述

(請參閱下面我當前的代碼)

function sendemail() {

 //setup function
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 2;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,4);
 var AllValues = WholeRange.getValues();

 //iterate loop
 for (i in AllValues) {

 //set current row
 var CurrentRow = AllValues[i];

 //set subject line
 var Subject = "New Content on IG.com";

 //set HTML template for information
 var message = 
      "<p><b>Title: </b>" + CurrentRow[1] + "</p>" +
      "<p><b>Article: </b>" + CurrentRow[2] + "</p>" +
      "<p><b>Published Date: </b>" + CurrentRow[3] + "</p>";

 //define column to check if sent
 var EmailSent = CurrentRow[4];

 //define who to send grants to 
 var SendTo = "TEST@gmail.com";

 //if row has not been sent, then...  
 if (EmailSent != "Yes") {

  //set the row to look at
  var setRow = parseInt(i) + StartRow;

  //mark row as "sent"
  ActiveSheet.getRange(setRow, 4).setValue("Yes");

  //send the actual email  
  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
});
}
}
}

嘗試這個:

function sendemail() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getActiveSheet();
  const sr = 2;
  const rg = sh.getRange(sr, 1, sh.getLastRow() - sr + 1, 4);
  const vs = rg.getValues();
  vs.forEach((r, i) => {
    let Subject = "New Content on IG.com";
    let message =
      "<p><b>Title: </b>" + r[0] + "</p>" +
      "<p><b>Article: </b>" + r[1] + "</p>" +
        "<p><b>Published Date: </b>" + r[2] + "</p>";
    let EmailSent = r[3];
    let SendTo = "TEST@gmail.com";
    if (EmailSent != "Yes") {
      sh.getRange(i + sr, 4).setValue("Yes");
      MailApp.sendEmail({to: SendTo,cc: "",subject: Subject,htmlBody: message});
    }
  })
}

測試:

一種 C
1個 標題 url 日期 發送
2個 t1 u1 d1 是的
3個 t1 u2 d2 是的
4個 t1 u3 d3 是的
5個 t1 u4 d4 是的
6個 t1 u5 d5 是的
7 t1 u6 d6 是的
8個 t1 u7 d7 是的
9 t1 u8 d8 是的
10 t1 u9 d9 是的

然后全部變為是

暫無
暫無

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

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