gpt4 book ai didi

google-apps-script - 如何阻止来自活跃用户的重复电子邮件?

转载 作者:行者123 更新时间:2023-12-01 02:30:02 24 4
gpt4 key购买 nike

我需要一点指导!

我为 Google 电子表格创建了一个简单的脚本,该脚本旨在在满足特定条件时向用户发送电子邮件,并将该行标记为“已发送电子邮件”;它在 onEdit 触发器上运行并且效果很好。
但是,如果多个启用触发器的用户同时打开工作表,它将从每个帐户发送相同的电子邮件。

我尝试使用:

function onChange(e) {
if (ROW HASN'T BEEN EMAILED ALREADY) {
if (3 CELLS IN A ROW HAVE CONTENT) {
if (Session.getActiveUser().getEmail() == e.user.getUserLoginId()) {
SEND THE EMAIL
MARK ROW AS EMAILED
}
}
}
}

因此,只有进行更改的用户才会发送电子邮件,但所有用户仍会发送电子邮件。我比较了值 Session.getActiveUser().getEmail()e.user.getUserLoginId()手动生产,理论上它应该可以工作......虽然很明显我做错了什么!

谢谢。

最佳答案

这是一个有点令人困惑的话题,但我相信这是正常运行的。

这里有一些细节。

  • onChange(e)功能,e.user将始终是“拥有”文档的人。看向this page的底部关于文档中的事件。本质上,您无法确定哪个用户的更改导致触发器触发。
  • 当有两个用户各自在 onEdit 上有一个触发器时事件,那么这两个触发器每次都会运行(本质上该函数运行两次),即使只有一个用户打开了电子表格。但是,根据 #1,您无法在触发函数运行中找出导致 onEdit 的用户更改。事件

  • 您将不得不重新考虑一下您的工作流程,也许是 timed trigger每小时检查一次是否有人​​收到电子邮件。另一种选择是只有一个触发器作为文档所有者运行,您可以在那里执行检查逻辑。希望这是有道理的。

    关于google-apps-script - 如何阻止来自活跃用户的重复电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725096/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com