2017-07-19 50 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(); 
 
    } 
 
    } 
 
}

相關問題