【发布时间】:2019-11-09 04:48:10
【问题描述】:
我正在考虑在提交 Google 表单时触发自动电子邮件。它工作正常,但是我在下面的代码中遇到了 3 个问题
- 每次响应都会触发两封电子邮件,而我只希望发送一封电子邮件
- 电子邮件是从“所有者”的 ID 发送的,而不是通过 Google 表单提交回复的那个。
- 它应该在 col 7 中将所有成功发送的电子邮件的状态捕获为“EMAIL SENT”,但它没有这样做。
// has been sent successfully.
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow(); // Number of rows to process
var dataRange = sheet.getRange(numRows, 2, 1, sheet.getLastColumn());
// 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 emailAddress = row[5]; // First column
var message = 'Hello,'+ "\n"
+ "\n"
+ 'We have received an inquiry from your customer in Inbound'+ ".\n"
+ "\n"
+ 'Lead No is' + " - "
+ row[1] + "\n"
+ "\n"
+ 'Kindly arrange a callback'+ "\n"
+ "\n"
+ 'Regards,'+ "\n"
+ 'Team Inbound' + "\n"
+ "\n"
+ 'This is an auto-generated email'; // Second column
var emailSent = row[7]; // Third column
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
var subject = "Inbound Inquiry"+ " - " + row[1];
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
【问题讨论】:
-
关于两封电子邮件的问题,这可能会有所帮助:stackoverflow.com/questions/58781729/…
标签: google-apps-script google-sheets gmail google-forms