javascript - 根据列值发送电子邮件 = 是
问题描述
我有一个 Google 表格,其中电子邮件和姓名列是根据用户提交的表格自动填写的。此外,我还有 2 列,其中一列包含赠品代码列表,另一列用作发送电子邮件的批准。
因此,现在我设法创建一个按钮,单击该按钮将发送所有带有赠品代码的电子邮件。
现在,
- 如何仅将电子邮件发送给状态列中只有值“y”的用户?
- 另外,发送邮件后,“y”的值会变成“d”吗?这样以后,如果我再次使用该功能,它只会发送给新用户。
这是工作表示例https://docs.google.com/spreadsheets/d/1KkShktBnJoW9TmIzNsAuAJb6XslBrMwJGEJu7xeF1fk/edit?usp=sharing
这是代码
function sendArticleCountEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Test1"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:E1000");
var data = dataRange.getValues();
for (i in data) {
var rowData = data[i];
var emailAddress = rowData[1];
var timeStamp = rowData[0];
var recipient = rowData[2];
var code = rowData[3];
var status = rowData[4];
var message = 'Dear ' + recipient + ',\n\n' + 'The giveaway code is ' + code;
var subject = 'Here is your giveaway code!';
MailApp.sendEmail(emailAddress, subject, message);
}
}
/**
* The event handler triggered when opening the spreadsheet.
* @param {Event} e The onOpen event.
*/
function onOpen(e) {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'sendArticleCountEmails'}
];
spreadsheet.addMenu('Send Emails', menuItems);
}
解决方案
只需添加这样的 if 语句:
function sendArticleCountEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Test1"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange("A2:E1000");
var data = dataRange.getValues();
for (i in data) {
var rowData = data[i];
var emailAddress = rowData[1];
var timeStamp = rowData[0];
var recipient = rowData[2];
var code = rowData[3];
var status = rowData[4];
var message = 'Dear ' + recipient + ',\n\n' + 'The giveaway code is ' + code;
var subject = 'Here is your giveaway code!';
if (status == "y") {
MailApp.sendEmail(emailAddress, subject, message);
var actualRow = parseInt(i)+2;
sheet.getRange(actualRow,5).setValue("d");
}
}
}
推荐阅读
- python - 如何用逗号分隔数字?
- html - Wordpress:限制 *|RSSITEM:CONTENT|* 合并标签中包含的 html
- c# - Outlook HTMLBody 拒绝输出我指定的字体大小,无论值如何
- winforms - Cefsharp 对 Load 方法的连续调用
- angular7 - Ionic 4将生成的页面放在页面文件夹之外
- c# - 在 Unity 中使对象沿随机方向移动
- python - 是否可以从 Flutter 应用程序运行 Python 方法?
- apache - .htaccess 在被屏蔽的域上重定向,仅在使用特定域时才生效
- node.js - 来自原点“clientUrl”已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
- javascript - 导入有效,但为什么要求不起作用?