我很难编写一个脚本来自动发送来自Google表格的电子邮件。电子邮件应发送到位于V列的电子邮件地址,但仅在同一行的AB列中输入“ N”之后。它只会在进入后立即发生一次,并且不会再次发生。
我尝试了一些脚本,例如Google Apps Script - Send email based on data in cell,但没有成功。
答案 0 :(得分:0)
您需要的是遍历AB列并检查“ N”项(假设它只是一个字符串),然后发送电子邮件,然后为避免重复发生,可以将N更改为其他值。使用应用程序脚本看起来像这样:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Will return a 2D array with the entire's sheet values
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++){
if (data[i][0] == "N"){
// Sends the email, The name section is the name people who receive the email would see ass the "from" id.
// If there is no email in the cell this will return an error, so you can add a try/catch here to avoid that.
GmailApp.sendEmail(data[i][1], "Subject", "Message", {name: 'N Finder Script'});
//To avoid repetition, you can edit the N value after sending the email.
sheet.getRange("A" + (i+1)).setValue(""); // This would be "AB" in your case.
sheet.getRange("A" + (i+1)).setValue("S"); // S for email sent, for example.
}
}
}
一些小警告;我使用一个小的测试电子表格来运行它,这就是为什么我在“ A”列中搜索值的原因。当我检查data [i] [0]时,我正在检查第一列的第i行,您必须将0更改为与具有“ N”的列相匹配的数字。这同样适用于电子邮件,我在data [i] [1]中查看它们,您将更改为1以匹配您具有电子邮件列表的列。
最后,要使代码在每次添加N时运行,您可以添加一个onEdit触发器,您可以按照以下链接中的说明进行操作:
https://developers.google.com/apps-script/guides/triggers/installable