Google脚本-根据条件发送自动电子邮件

时间:2018-09-14 15:02:25

标签: google-apps-script

希望您能为我提供帮助,我是google脚本(和一般编码)的初学者!

我的主要目的是在任务未完成7天以上时自动发送电子邮件。

这是我的sheet

详细来说,我的文件是报告客户订单的问题。因此,您会发现很多列,但用于此情况的唯一列是:问题出现问题的日期(C),订单号(D)和问题产生的原因(I,J,K,L)。 / p>

在我的脚本中,每次超过7天未解决问题时,我都希望向该电子邮件地址(xxx@xxx.xx)发送电子邮件。 这个主意是收到一封邮件,上面写着:“请注意,n°// variable //的问题还没有解决多于// variable //。这个问题是由于//variable//”。

运行代码时,没有收到任何错误消息,但我也没有收到任何邮件。

这是我的代码:

 function sendEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheetByName("Envoi mail"));
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange("A2:H40");
  var data = dataRange.getValues();
  for (i in data) {
    var rowData = data[i];
    var commande = rowData[1];
    var jourretard = rowData[2];
    var raison1 = rowData[3];
    var raison2 = rowData[4];
    var raison3 = rowData[5];
    var raison4 = rowData[6];
    var execute = rowData[7]; 
    var message = 'Attention, un incident sur la commande n°' + commande + '.' + 'En attente de résolution depuis' + jourretard + '. Il est dû à' + raison1 + raison2+ raison3+ raison4+'.';
    var subject = 'Incident non-traité'; 
if (execute == "yes"){
MailApp.sendEmail('xxx@xxx.xx', subject, message);
  }
}}

非常感谢,祝您有美好的一天, 亚历克斯

1 个答案:

答案 0 :(得分:0)

这是我更新的代码;我修改了:  -“ rowData [0]”数字  -我更改了“ for(var i = 0; i

但是它仍然无能为力(没有收到邮件,无法使用调试模式..)

ScriptApp.newTrigger("sendEmails")
  .timeBased()
  .everyDays(1)
  .create();

function sendEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheetByName("Envoi email"));
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange("A2:G25");
  var data = dataRange.getValues();
  for (var i = 0; i < dataRange.length; i++) {
    var rowData = data[i];
    var commande = rowData[0];
    var jourretard = rowData[1];
    var raison1 = rowData[2];
    var raison2 = rowData[3];
    var raison3 = rowData[4];
    var raison4 = rowData[5];
    var execute = rowData[6]; 
    var message = 'Attention, un incident sur la commande n°' + commande + '.' + 'En attente de résolution depuis' + jourretard + '. Il est dû à' + raison1 + raison2+ raison3+ raison4+'.';
    var subject = 'Incident non-traité'; 
if (execute == "yes"){
MailApp.sendEmail('contact@xxx.x', subject, message);
  }
}}


here are my OAuth ot the project:
"https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/script.send_mail
https://www.googleapis.com/auth/spreadsheets"

如果您有想法,请不要犹豫:)

我也有一个关于脚本执行的问题(可能看起来很愚蠢,但是我检查了却没有找到..),“ getActiveSpreadsheet”是否表示该脚本无法在文件关闭的情况下执行?

非常感谢您的宝贵时间和帮助!