我是一名編程初學者,我嘗試了很多東西(解決方案),但沒有腳本正在運行。 我正在使用現有的sendEmail腳本(見下面)將電子郵件發送到新的電子表格條目。Google Apps腳本:電子郵件只觸發新條目(不使用Google表單)
https://docs.google.com/spreadsheet/ccc?key=0At8yp_w7-gFwdHdhS0RDa2hXUUMyU2lfRFJ1NU1iNEE&usp=sharing
我沒有使用谷歌表單。我從其他電子表格表中複製所需的信息。使用onEdit觸發器,腳本會發送電子郵件給新條目。
我遇到的問題是腳本發送電子郵件到電子表格的每一行,即使該信息已經發送。
我嘗試了一些解決方法,雖然它們在論壇中被命名,但在我的情況下沒有任何幫助。我不想只發送一封電子郵件到最後一個條目。我想發送電子郵件給不同數量的新條目,如果可能的話,這應該由onEdit事件觸發。 我希望有人能幫助我很快...
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails(onlyLast) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheets()[0];
var startRow = 2;
var lastRow = datasheet.getlastRow()-1;
if (onlyLast)
startRow = endRow;
var dataRange = dataSheet.getRange(startRow, 1, lastRow, 4);
var templateSheet = ss.getSheets()[1];
var emailTemplate = templateSheet.getRange("A1").getValue();
// Create one JavaScript object per row of data.
var objects = getRowsData(dataSheet, dataRange);
// For every row object, create a personalized email from a template and send
// it to the appropriate person.
for (var i = 0; i < objects.length; ++i) {
// Get a row object
var rowData = objects[i];
var file = DriveApp.getFileById('');
// Generate a personalized email.
// Given a template string, replace markers (for instance ${"First Name"}) with
// the corresponding value in a row object (for instance rowData.firstName).
var emailText = fillInTemplateFromObject(emailTemplate, rowData);
var emailSubject = "Tutorial: Simple Mail Merge";
var emailSent;
if (emailSent != EMAIL_SENT) {
var subject = "Tutorial: Simple Mail Merge";
MailApp.sendEmail(rowData.emailAddress, emailSubject, emailText, {attachments:[file.getAs(MimeType.PDF)]});
dataSheet.getRange(startRow + i, 5).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
從不共享編輯權限的紙張,即使在這個論壇的人有不良的生活習慣,有時並填寫怪異內容牀單;-)我將它設置爲只能查看,任何人都可以複製,如果他們需要進一步測試。 – 2014-09-25 20:42:45