如何使用刚刚在Google Apps脚本中编辑特定列的行的数据发送电子邮件?

问题描述 投票:0回答:1

我想使发送电子邮件的工作自动化。为此,我创建了Google Apps脚本,但无法正常工作。

我的目标是:如果我将任一行的列I更新为“是”,则必须仅通过添加用户名和密码将电子邮件发送至该行的电子邮件ID。并且如果可能,电子邮件状态也将更改为“日期已发送的电子邮件”

这是我的桌子table

代码:-

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);
  }
  
}
google-apps-script google-sheets gmail google-sheets-query google-sheets-macros
1个回答
0
投票

解决方案

您在脚本中有一些错误,例如使用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);
  }
  
}

我希望这对您有所帮助。让我知道您是否还需要其他什么,或者您是否不了解。 :)

© www.soinside.com 2019 - 2024. All rights reserved.