Google apps script MailApp.sendmail->;来自不同帐户的邮件
我正在使用共享电子表格中的脚本向工作组发送更新电子邮件。 我正在使用一个简单的调用:Google apps script MailApp.sendmail->;来自不同帐户的邮件,google-apps-script,Google Apps Script,我正在使用共享电子表格中的脚本向工作组发送更新电子邮件。 我正在使用一个简单的调用: MailApp.sendEmail(mail_address, subject, msg); 它在一段时间内运作良好。。但现在我有一个奇怪的行为:脚本运行成功,但电子邮件实际上是由共享电子表格的其中一个用户随机发送的。。 我不明白这是怎么可能的,因为他们不是共享帐户,也不可能发送那样的电子邮件 编辑:脚本由基于电子表格编辑的触发器执行。情况: 您已为具有电子表格编辑权限的所有用户安装了onEdit触发器 此
MailApp.sendEmail(mail_address, subject, msg);
它在一段时间内运作良好。。但现在我有一个奇怪的行为:脚本运行成功,但电子邮件实际上是由共享电子表格的其中一个用户随机发送的。。
我不明白这是怎么可能的,因为他们不是共享帐户,也不可能发送那样的电子邮件
编辑:脚本由基于电子表格编辑的触发器执行。情况:
- 您已为具有电子表格编辑权限的所有用户安装了
触发器onEdit
- 此触发器触发的函数发送电子邮件
- 您注意到,编辑电子表格的用户并不总是发送电子邮件
getActiveUser()
和getEffectiveUser()
:
- 指当前用户,即刚刚编辑电子表格的用户
- 指在其权限下运行脚本的用户。也就是说,安装触发器的用户
活跃用户
和有效用户
是否相同,并且只有在这种情况下才发送电子邮件。这样,即使单个版本触发多个功能(安装触发器的每个帐户一个),也只会发送一封电子邮件(与编辑电子表格的用户对应的电子邮件)
代码示例:
函数onEditTrigger(e){
var activeUser=Session.getActiveUser().getEmail();
var effectiveUser=Session.getEffectiveUser().getEmail();
if(activeUser==effectiveUser){
//代码的其余部分
MailApp.sendmail(邮件地址、主题、消息);
}
}
注:
- 如果已安装触发器,则最好不要将函数命名为
:此名称保留用于简单触发器onEdit
- 您已为具有电子表格编辑权限的所有用户安装了
触发器onEdit
- 此触发器触发的函数发送电子邮件
- 您注意到,编辑电子表格的用户并不总是发送电子邮件
getActiveUser()
和getEffectiveUser()
:
- 指当前用户,即刚刚编辑电子表格的用户
- 指在其权限下运行脚本的用户。也就是说,安装触发器的用户
活跃用户
和有效用户
是否相同,并且只有在这种情况下才发送电子邮件。这样,即使单个版本触发多个功能(安装触发器的每个帐户一个),也只会发送一封电子邮件(与编辑电子表格的用户对应的电子邮件)
代码示例:
函数onEditTrigger(e){
var activeUser=Session.getActiveUser().getEmail();
var effectiveUser=Session.getEffectiveUser().getEmail();
if(activeUser==effectiveUser){
//代码的其余部分
MailApp.sendmail(邮件地址、主题、消息);
}
}
注:
- 如果已安装触发器,则最好不要将函数命名为
:此名称保留用于简单触发器onEdit