google-apps-script - 收到电子邮件时触发的 Google gmail 脚本
问题描述
我一直在阅读gmail 插件。它们具有在您打开电子邮件时触发的上下文触发器。
当我收到电子邮件时,是否可以触发服务?我能找到的最好的是unconditional
,但这仅在打开电子邮件时触发。
解决方案
您无法为每封电子邮件创建触发器,但是您可以执行与此答案中所述类似的操作。
例如,您可以:
设置一个过滤器,在您要处理的传入电子邮件上放置一个特殊标签。
设置每 10 分钟甚至每分钟运行一次的重复脚本。在脚本中,您可以提取所有具有给定标签的电子邮件,并相应地处理它们,完成后删除标签。
function processEmails() {
var label = GmailApp.getUserLabelByName("Need To Process");
var threads = label.getThreads();
for (var i = threads.length - 1; i >= 0; i--) {
//Process them in the order received
threads[i].removeLabel(label).refresh();
}
}
然后,您可以将其设置在基于时间的触发器上,使其尽可能频繁地运行。
如果您想跟踪您已处理的电子邮件,您可以创建另一个“已处理”标签,并在完成处理后将其添加到邮件中。
推荐阅读
- java - Mockk - ClassCastException when mocking final class that implements multiple interfaces
- javascript - Why does a `click` event get triggered on my
- friendly-id - 如何修复 :id 和 :slug 的 FriendlyID 重复内容
- java - 何时使用 BindingAdapter,何时使用 MVVM 中的 liveData 或 observable 字段?
- google-maps - 如何使用 url 在我的地图(谷歌地图)上添加图钉?
- reactjs - MUI 中的 CSS 子选择器
- blockchain - 我们可以删除在 cordapp 中交易期间创建的条目。但是在 Cordapp 区块链中是如何实现不变性的呢?
- c++ - boost c++库的read_xml函数中的分段错误
- c - c中整数的输入验证
- amazon-web-services - 如何传递有效类型的参数
在 aws lambda 函数中