2013-10-23 140 views
0

我想寫一個腳本,它會根據電子表格上的輸入向特定的人發送電子郵件。我無法發送電子郵件。我想這個腳本做X事情:無法從編輯的電子表格發送電子郵件

  • 監視任務線索名稱的列4。
  • 根據名稱輸入發送電子郵件至相應的潛在客戶。
  • 不發送重複的電子郵件。該腳本需要檢查第8列,並驗證電子郵件已發出,如果沒有,發送電子郵件。
  • 將電子表格名稱插入電子郵件主題,並將第2列用作電子郵件的正文/消息。

這裏是我當前的腳本代碼:

function sendEmail() { 
    var emailColumn = 8; 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var row = sh.getActiveCell().getRowIndex(); 
    var emailSent = "Yes. Email Sent"; 
    var range = sh.getActiveCell(); 
    var taskLeads = ["noah", "tony", "larry"]; 
    var leadsColumn = 4; 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sh = SpreadsheetApp.getActiveSheet(); 

    if (range.getColumn() == leadsColumn && range.getValue().toLowerCase() == taskLeads[0]) { 
    var recipient = "[email protected]"; // email address 
    var body = sh.getRange(row, 2); // Message contained in second column 
    var subject = "New to do item in " + ss.getName(); //Pulls Spreadsheet name 
    sh.getRange(row, 10).setValue(body); //Testing 
    sh.getRange(row, 11).setValue(subject); //Testing 
    sh.getRange(row, 9).setValue(recipient); //Testing 
    MailApp.sendEmail(recipient, subject, body); 

    if (range.getColumn() == emailColumn && range.getValue().toLowerCase() == valueToWatch) { 
     sh.getRange(row, 8).setValue(emailSent); 
    } 
    } 
} 
+0

據我所知,有些特定功能可用於從電子表格和其他功能發送電子郵件,以便在電子表格中進行單元更新。我的問題最終是關於調用的正確函數以及如何讓該函數內的代碼正常工作。 – Noah

回答

0

我使用這個腳本在表格發送郵件到用戶提交的。您可以從處理網絡表單的Google Spreadsheet運行它。

var EMAIL_SENT = "Email_Sent"; 

function sendEmails2() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var startRow = 2; //starts checking from row 2 
    var numRows = 1000; //to handle at least the first 1000 rows 
    var dataRange = sheet.getRange(startRow, 1, numRows, 1000) 
    var data = dataRange.getValues(); 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var emailAddress = row[0]; //gets the email address of the user in Col 1 
    var message = row[1]; // gets the message from Col 2  
    var emailSent = row[2]; // writes "Email_Sent" in Col 3  
    if (emailSent != EMAIL_SENT) { 
     var subject = "Place your default subject"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT); 
     SpreadsheetApp.flush(); 
    } 
    } 
}