簡體   English   中英

你好。 我是 javascript 和谷歌應用腳本的初學者。我已經完成了編碼以通過谷歌表格發送電子郵件,但電子郵件沒有發送

[英]Hello. I am a begineer to javascript and google app script.I have done my coding to send emails by google sheets but the emails are not sending

這是我的編碼。 幫幫我。

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").activate();
var lr = ss.getLastRow();
   
   
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1,1).getValue();

//for (var i =2;i<=lr;i++){
var currentEmail = column(i,1);
var currentClass = column(i,3).getValues();
var currentName = ss.getRange(i,2).getValues();

var messageBody = templateText.replace("{name}",currentName).replace("{class}",currentClass);
var subjectLine = "Reminder:" + currentClass + " Upcoming Class";
MailApp.sendEmail(currentEmail,subjectLine,messageBody);

問題:

您的代碼中有很多問題,包括未定義的變量(例如columni ),但我認為您想要執行以下操作:

Sheet1中的每一行發送 email ,考慮到:

  • recipientA列中。
  • subject基於C列的值。
  • 消息正文是通過將Template!A1中的字符串模板中的關鍵字{name}{class}分別替換為B列和C的值來構建的。

代碼片段:

如果以上是正確的,您可以執行以下操作:

function yourFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName("Sheet1");
  var firstRow = 2;
  var numRows = sheet1.getLastRow() - firstRow + 1; 
  var templateText = ss.getSheetByName("Template").getRange(1,1).getValue();
  var values = sheet1.getRange(firstRow,1,numRows,3).getValues(); // Retrieve data from all rows
  values.forEach(row => { // Iterate through each row
    var [currentEmail, currentName, currentClass] = row; // Get values from columns A-C
    var messageBody = templateText.replace("{name}",currentName)
                                  .replace("{class}",currentClass);
    var subjectLine = "Reminder:" + currentClass + " Upcoming Class";
    MailApp.sendEmail(currentEmail,subjectLine,messageBody);
  });
}

參考:

暫無
暫無

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

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