我创建了一个Google表单,可作为我的一个信息论坛的“注册”。
在Google表单中捕获的数据已分配给响应电子表格。
根据选择的可以正常工作的成员资格,用电子表格来编制电子表格。
我想为任何人发送自动电子邮件,单击“提交”后立即注册,我也为此创建了触发器。
问题在于编写代码的初始阶段。
第一个代码是:
function myfunction(e) {
var recipient = e.values[1];
var name = e.values[2];
var membership = e.values[18];
var price = e.values[19];
var features = e.values[20];
var paymentlink = e.values[21];
var monthlypay = e.values[22];
var subscriptionlink = e.values[23];
var subject = 'Text';
var body = 'Text';
MailApp.sendEmail(recipient, subject, body)
}
此代码在测试电子表格上工作正常,但给出以下错误:TypeError:无法从未定义中读取属性“值”。 (第2行,文件“代码”)。
仍未解决。
第二个密码是:
/**
* Sends emails with data from the current spreadsheet.
*/
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 2;
var dataRange = sheet.getRange(startRow, 1, numRows, 25);
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
var emailAddress = row[1];
var name = row[2];
var membership = row[18];
var price = row[20];
var features = row[21];
var paymentlink = row[22];
var message = 'Text';
var subject = 'Text';
MailApp.sendEmail(emailAddress, subject, message);
}
}
此代码的问题是:
为了避免第二代码点2中提到的“重复电子邮件”问题,
我创建了后面的第三个代码:
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 2;
var dataRange = sheet.getRange(startRow, 2, numRows, 2);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var EMAIL_SENT = 'EMAIL_SENT';
var emailAddress = row[1];
var name = row[2];
var membership = row[18];
var price = row[19];
var features = row[20];
var paymentlink = row[21];
var monthlypay = row[22];
var subscriptionlink = row[23];
var emailSent = row[25];
if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
var message = 'Text';
var subject = 'Text';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 25).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
此代码的问题是:
如果您能解决第一个代码,我将不胜感激。要么。解决第三个代码中的所有问题。
谢谢。
我猜您的问题是函数参数,因为您知道在nodejs中函数的参数是请求,响应类型,因此根据您的第一个参数是请求,当您要访问它的特定值时,必须使用req .body.values和对于重复发送的邮件,您可以在电子表格中添加一个带有布尔标志的附加列,并根据是否发送邮件来设置和取消设置该布尔标志,并据此选择您的邮件收件人。希望对您有所帮助