当存在关键字时,将电子邮件发送到一个列中的地址,其中包含来自另一列的正文

时间:2017-07-24 19:00:49

标签: google-apps-script google-sheets gmail

我需要在C2中使用来自B2的正文电子邮件向C2中的特定电子邮件地址发送邮件通知。 A栏将填写Google表格。

https://docs.google.com/spreadsheets/d/15HrfUNhIyqLD948aRq0h9iAUW4Y_9LGe8HQm3MP2rZ0/edit?usp=sharing

function kirim() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 1;  // First row of data to process
  var numRows = 1;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 2)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[1];       // Second column
    var subject = "test meneh from spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

1 个答案:

答案 0 :(得分:1)

我真的不知道触发列的用途是什么,而且有任何主题,所以我把它留空了。但这应该做你需要的。您可能需要更改工作表名称,如果您想使用基于计时器的触发器调用此工具,则可能需要将第一行替换为var ss=SpreadsheetApp.openById('SpreadsheetID');

function kirim()
{
  var ss=SpreadsheetApp.getActive();
  var sht=ss.getSheetByName('SimpleEmail');
  var rng=sht.getDataRange();
  var rngA=rng.getValues();
  var changed=false;
  var re=/ok/i;
  for(var i=1;i<rngA.length;i++)
  {
    if(rngA[i][2].match(re))//case insensitive and of the following will work: Ok ok oK OK 
    {
      GmailApp.sendEmail(rngA[i][0], '', rngA[i][1]);
      rngA[i][3]='EMAIL_SENT';
      changed=true;
    }
  }
  if(changed)rng.setValues(rngA);     
}