培训注册自动化电子邮件

时间:2017-04-25 10:03:40

标签: scripting

我对谷歌表很新 我想知道是否可以让它做我想做的事。如果是这样,我会做更多的阅读,或者如果你能指出我正确的方向 我有一个培训记录,我希望它通过电子邮件发送给他们的人,他们的特定培训将在一个月内过时。 所有人都在行中,并在列中进行培训

我看到很多线索,但没有人得到关于这个主题的回复。

你好皮埃尔谢谢你输入我非常感谢

像皮埃尔说的那样,我对此非常陌生,所以我还在研究代码。我发现了这个,但我不认为这会做我想做的事。

我确实想要C

中的名字和姓氏列和电子邮件
function sendMail(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();   //Get the active Spreadsheet
  var sheet = ss.getSheetByName('Sheet1');     //Get the sheet by name, Sheet1 as example
  var startRow = 2;     //We start process things from row 2
  var lastRow = sheet.getLastRow();    //Get the last row of data to be processed
  var lastCol = sheet.getLastColumn();  // Get the last column of data to be processed
  var range = sheet.getRange(2,1,lastRow,lastCol);  //Fetch the range
  var data = range.getValues();   //Get the values inside the range
      for (var i = 0;i<data.length;i++){   //Iterate values
        var row = data[i];   //Set up variable for easier retrieve data to be processed and more understandable by human
        var FirstName = row[1];  //Column B
        var LastName = row[2];   //Column C
        var emailAddress = row[3];  //Column D
        var dueDate = Utilities.formatDate(new Date(row[4]),'GMT+0800','dd/MM/yyyy');   //Column E. Utilities format so the date won't be in long values
        var timer = row[6];  //Column G
        var msg = 'Hello '+FirstName+' '+LastName+'<br><br>'   // Your templates
                 +'This is a test mail '+dueDate+'<br><br>'
                 +'Bla bla bla<br>'
                 +'Another lines of texts<br><br>'
                 +'Another lines of texts<br><br>'
                 +'Thank You<br><br>'
                 +'OH!! I like Banana.';
            if(timer ==3){   //Set up the condition
            GmailApp.sendEmail(emailAddress,'Your Renty Rental is Due Soon!',msg,{htmlBody:msg})   //Send the email to the recipient
            sheet.getRange(startRow+i,7).setNote('Email Sent');  //Set note on column 'G' 
            SpreadsheetApp.flush
            }
    }
};

这是指向我的工作表的链接(已删除我的所有程序,因为我从抓取https://docs.google.com/spreadsheets/d/1cwkbBAEoX4Wzo0d_sS0UrCYtTYMo5S9NHBSlSmat4CA/edit?usp=sharing开始

我确实希望列A中的名字是姓氏列B电子邮件列c。

在F,J,K,U,V,W,AB,AF,AG,AH,AI,AJ,AK,AM,AN,AR,AZ列中,我希望他们在运行前30天向该人发送电子邮件在每个工作表和所有其他列中的所有行都用完之前的第15天,我不想再发送电子邮件,因为它们不会用完。

我确实有多张工作表需要使用此代码。

我已经完成了基础知识,并且我已经将表单发送出去了,但是添加我需要的所有额外要求需要很多知识。

1 个答案:

答案 0 :(得分:0)

考虑你的表:

Exemple of content

您可以使用以下代码:

function sendReminder() {

  // Get the sheet where you get your register
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Training Register"); 

  // Get the data, consider you have a table with 3 columns "name", "end date" and "email"
  var data = sheet.getRange(2, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues(); 

  for(var i=0; i < data.length; i++){

    var d = new Date();

    // If the date is today or before, we send the reminder
    if(data[i][1] < d){

      GmailApp.sendEmail(data[i][2], "Particular training", "Your particular training is out of date");

    }

  }

}

您还需要创建trigger以便每次都运行一次代码。

相关问题