2017-07-19 84 views
0

我写了这个JS,使用Google脚本自动发送电子邮件到电子表格中。 不幸的是,重复检查不起作用,并且密件抄送行触发错误。 其实我每次只想将最后一个答案发送到电子表格。 你能帮我吗?因为你把一个额外的逗号使用Google脚本自动复制检查和密送抄送

var EMAIL_SENT = "EMAIL_SENT"; 
 

 
function sendEmails2() { 
 
    var sheet = SpreadsheetApp.getActiveSheet(); 
 
    var startRow = 2; 
 
    var numRows = active; 
 
    var dataRange = sheet.getRange(startRow, 1, numRows, 14) 
 
    var data = dataRange.getValues(); 
 
    for (var i = 0; i < data.length; ++i) { 
 
    var row = data[i]; 
 
    var name = row[2]; 
 
    var surname = row[3]; 
 
    var salesRepEmail = row[4]; 
 
    var qualityAnalystEmail = "[email protected]" 
 
    var customerEmail = row[5]; 
 
    var websiteURL = row[6]; 
 
    var solution1 = row[7]; 
 
    var solution2 = row[8]; 
 
    var solution3 = row[9]; 
 
    var toResolve1 = row[10]; 
 
    var toResolve2 = row[11]; 
 
    var toResolve3 = row[12]; 
 
    var checkDate = row[13]; 
 
    var message = 'Bonjour '+ name + ' ' + surname + ', ' + 'blablabla'; 
 
    var emailSent = row[14];  // Third column 
 
    if (emailSent != EMAIL_SENT) { // Prevents sending duplicates 
 
     var subject = "Votre Optimisation De Site Mobile pour " +websiteURL; 
 
     MailApp.sendEmail(customerEmail, subject, message, { 
 
     cc: "", 
 
     bcc: qualityAnalystEmail,+ " " + salesRepEmail, 
 
     }); 
 
     sheet.getRange(startRow + i, 15).setValue(EMAIL_SENT); 
 
     // Make sure the cell is updated right away in case the script is interrupted 
 
     SpreadsheetApp.flush(); 
 
    } 
 
    } 
 
}

+0

我不明白了var = numRows行积极;什么是主动的? –

+0

非常感谢您的回复。我正在寻找最后一行的内容,而不是空白的 –

+0

你应该看看文档,这很有帮助。要获取最后一行,只需使用[getLastRow()方法](https://developers.google.com/apps-script/reference/spreadsheet/sheet#getLastRow()) –

回答

0

你的代码在BCC行触发。作为对documentation看出,BCC参数应该是一个

的电子邮件地址,以BCC

一个逗号分隔的列表

在你的CAS,你should'nt有:

bcc: qualityAnalystEmail,+ " " + salesRepEmail

但:

bcc: qualityAnalystEmail + ", " + salesRepEmail 

这给:

MailApp.sendEmail(customerEmail, subject, message, { 
     cc: "", 
     bcc: qualityAnalystEmail+ ", " + salesRepEmail 
     }); 

(你也把多余的逗号您的BCC参数这是不好之后)

+0

唯一的一点是,我也希望避免空白的电子邮件。我只想为电子表格的最后一个有效行发送一封电子邮件,该电子邮件无法正常工作 –

+0

您也可以寻求关于密件抄送行触发器的帮助。如果你需要关于你的功能的结果的帮助,你应该添加一些你的数据的例子和你要找的东西,或者/添加一个你的电子表格样本,以便更好地了解你的工作。 –

+0

嗨,Pierre-Marie,我在评论中写了一个好日子,感谢您的帮助 –

0

太感谢你了,请查收DATAS和下面的脚本。

我会尝试使用Google Scriptlet将变量调入HTML。目前,简单的文字就足够了。它似乎是这样工作的,但代码不干净。

Image Du Tableau

// This constant is written in column O for rows for which an email 
 
// has been sent successfully. 
 
var EMAIL_SENT = "EMAIL_SENT"; 
 

 
function testSchemas() { { 
 
    var sheet = SpreadsheetApp.getActiveSheet(); 
 
    var startRow = sheet.getLastRow(); 
 
    var numRows = 1; // Number of rows to process 
 
    var dataRange = sheet.getRange(startRow, 1, numRows, 15) 
 
    // Fetch values for each row in the Range. 
 
    var data = dataRange.getValues(); 
 
    for (var i = 0; i < data.length; ++i) { 
 
    var row = data[i]; 
 
    var name = row[2]; 
 
    var surname = row[3]; 
 
    var salesRepEmail = row[4]; 
 
    var qualityAnalystEmail = "[email protected]" 
 
    var customerEmail = row[5]; 
 
    var websiteURL = row[6]; 
 
    var solution1 = row[7]; 
 
    var solution2 = row[8]; 
 
    var solution3 = row[9]; 
 
    var toResolve1 = row[10]; 
 
    var toResolve2 = row[11]; 
 
    var toResolve3 = row[12]; 
 
    var checkDate = row[13]; 
 
    function doGet() { 
 
    return HtmlService 
 
     .createTemplateFromFile('Index') 
 
     .evaluate(); 
 
} 
 

 
    Logger.log(doGet); 
 
    var htmlBody = HtmlService.createHtmlOutputFromFile('Index').getContent(); 
 
    var message = 'Bonjour '+ name + ' ' + surname + ', ' + 'c\'est avec grand plaisir que je vous écris pour résumer ... - '+solution1+' \n\n- '+solution2+' \n\n- '+solution3+' \n\nMalgré...'; 
 
    var emailSent = row[14];  // Third column 
 
    if (emailSent != "EMAIL_SENT") { // Prevents sending duplicates 
 
    /*MailApp.sendEmail(customerEmail, subject, message, { 
 
     cc: "", 
 
     bcc: qualityAnalystEmail + ", " + salesRepEmail 
 
     }); */ 
 
    MailApp.sendEmail({ 
 
    to: customerEmail, 
 
    bcc: qualityAnalystEmail + ", " + salesRepEmail, 
 
    subject: 'Résumé De Notre Consultation Du Site Mobile ' + websiteURL, 
 
    htmlBody: htmlBody, 
 
    }); 
 
} 
 
     Logger.log(name); 
 
     sheet.getRange(startRow + i, 15).setValue(EMAIL_SENT); 
 
     // Make sure the cell is updated right away in case the script is interrupted 
 
     SpreadsheetApp.flush(); 
 
    } 
 
    } 
 
}

相关问题