我想使发送电子邮件的工作自动化。为此,我创建了Google Apps脚本,但无法正常工作。
我的目标是:如果我将任一行的列I更新为“是”,则必须仅通过添加用户名和密码将电子邮件发送至该行的电子邮件ID。并且如果可能,电子邮件状态也将更改为“日期已发送的电子邮件”
代码:-
function onEdit(e) {
var ss= SpreadsheetApp.getActiveSpreadsheet();
var range = e.Range;
if(range.getColumn()== 9 && e.getValue()=="Yes")
{
var celladdress = 'E'+ e.getRowIndex();
var emailid= ss.getRange(celladdress).getValue();
var sub = '𝑪𝒓𝒆𝒅𝒆𝒏𝒕𝒊𝒂𝒍𝒔 - 𝒓𝒆𝒈';
var uname = ss.getRange('G'+ e.getRowIndex()).getValue();
var pass = ss.getRange('H'+ e.getRowIndex()).getValue();
var b = "Your details are as follows: \n Username :" +uname+ "\n Password : "+pass+ "\nThis is for your information please. \nThanks and Regards";
MailApp.sendEmail(emailid, sub, b);
}
}
您在脚本中有一些错误,例如使用e.getValue()
的range.getValue()
instad,我已更正了这些错误。
而且,最重要的是,要能够使用触发器发送电子邮件,您需要使用可安装的触发器,因为简单的触发器确实有限制,因为MailApp
服务需要授权。 Here您可以找到有关此的更多信息。
要创建可安装的触发器(如果尚未创建),请转到脚本编辑器,然后转到编辑->当前项目触发器和触发器面板添加触发器。选择您的函数(onEdit),然后将事件类型设置为编辑时。
这是您纠正了错别字的代码:
function onEdit(e) {
var ss= SpreadsheetApp.getActiveSpreadsheet();
var range = e.range;
if(range.getColumn()== 9 && range.getValue()=="Yes")
{
var celladdress = 'E'+ range.getRow();
var emailid= ss.getRange(celladdress).getValue();
var sub = 'Credentials-reg';
var uname = ss.getRange('G'+ range.getRow()).getValue();
var pass = ss.getRange('H'+ range.getRow()).getValue();
var b = "Your details are as follows: \n Username :" +uname+ "\n Password : "+pass+ "\nThis is for your information please. \nThanks and Regards";
GmailApp.sendEmail(emailid, sub, b);
}
}
我希望这对您有所帮助。让我知道您是否还需要其他什么,或者您是否不了解。 :)