google-apps-script - 根据给定数据发送自动电子邮件
问题描述
每当Google表单将任何数据填充到工作表“数据”中时,我都使用以下脚本通过工作表“参考”发送自动电子邮件。
我不知道如何创建一个循环来执行此任务,即每当从 Google 表单中更新工作表“数据”上的任何数据时,在发送后自动将一封电子邮件发送到“参考”工作表 Col“G”中可用的邮件发送给该特定实体的电子邮件,代码应在“参考”表 Col“N”中提及作为邮件发送。
“参考”表 Col“O”是通知文本 “参考”表 Col“M”是主题 “参考”表 Col“G”是代码将发送上述数据的电子邮件
代码不应在我提到的“已发送电子邮件”上的“参考”表 Col“N”中的那些 ID 上再次发送电子邮件。
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetname= sheet.getSheetByName("Reference");
var startRow = 2; // First row of data to process
var numRows = sheetname.getLastRow("Reference"); // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheetname.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 emailAddress = row[6]; // First column
var message = row[13]; // Second column
var emailSent = row[14]; // Third column
if (emailSent !== EMAIL_SENT && row[12] == "Mail Send" && row[6] != "") { // Prevents sending duplicates
var subject = row[11];
MailApp.sendEmail(emailAddress, subject, message);
sheetname.getRange(startRow + i, 15).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
任何帮助将不胜感激
解决方案
首先原谅英语
为此,您可以使用下面的代码并忽略“参考”选项卡
不要忘记创建触发器,以便在发送表单后触发它。
function Send_email() {
var INITIALline = 2;
var columnSEND = 11;
var STATUScolumn = 12;
var textCONDITION = "Submit";
var textSENT = "Sent"
var tab = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
var interval = tab.getRange(INITIALline,1,tab.getLastRow()-INITIALline+1,STATUScolumn);
var dice = interval.getValues();
var yousent = false;
var email,subject,message;
for (var i=0; i<dice.length; ++i) {
if((dice[i][columnSEND-1]==textCONDITION) && (dice[i][STATUScolumn-1]!=textSENT)){
var email = dice[i][6]
subject = dice[i][7]+" | Your CASE ID IS | "+dice[i][0];
var message = "<font size='3' face='Comfortaa'>Dear "+dice[i][3]+",<br/><br/>"+
"Thanks for connecting with us. This is your case id "+dice[i][0]+"..<br/><br/>"+
"<i>Thanks & Regards</i><br/>"+
"<b>Team</b>";
MailApp.sendEmail(email, subject, message,{ htmlBody: message});
tab.getRange(INITIALline+i,STATUScolumn).setValue(textSENT);
yousent = true;
SpreadsheetApp.flush();
}
}
}
推荐阅读
- c - 使用 \ 扩展单行注释
- sql-server - RDS本机备份后在哪里可以找到.bak文件
- java - 在数据库 sqlite 中插入
- excel - excel出现问题时如何在电源查询中捕获错误
- php - 样式表被自动删除/注销 - WordPress
- react-native - 安装 react-native-camera 后出现此错误。尝试按照 git 上的一些答案中的建议更改版本和 sdk 工具,但没有解决方案
- google-calendar-api - Google-Calendar API - 获取默认日历的偏移量
- java - 转换一个字节变量并将其转换为字符串
- r - Rmarkdown 中同一行的 Kableextra 表和 ggplot 图(PDF - 不是 Flexdashboard)
- batch-file - 使用循环通过批处理脚本重命名文件名