Ago*_*noX 5 google-apps-script
我正在尝试实现一个简单的google脚本来处理gmail用户收到的每条消息.
我找到了一个像这样的例子:
var threads = GmailApp.getInboxThreads();
for (var i=0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j=0; j < messages.length; j++) {
if (!messages[j].isUnread()) {
continue;
}
//process message
}
}
Run Code Online (Sandbox Code Playgroud)
即:我遍历收件箱中的所有邮件并搜索未读邮件.仅1800条消息就非常慢.
理想情况下,我正在寻找一个触发器,一旦收到每条新消息就会被触发.
如果没有这样的东西,我会尝试利用我看到的:
GmailApp.getMessageById(id)
Run Code Online (Sandbox Code Playgroud)
小智 10
对于迟到的回复感到抱歉,但我遇到了同样类型的问题,最后我使用了GmailApp.search()...希望这会有所帮助.
// find unread messages
var threads = GmailApp.search('is:unread');
....
Run Code Online (Sandbox Code Playgroud)
警告
当所有线程的大小太大而系统无法处理时,此调用将失败.如果线程大小未知且可能非常大,请使用'paged'调用,并指定要在每次调用中检索的线程范围.
看看GmailApp.search(查询)和 GmailApp.search(查询,开始,最大)
不幸的是,没有触发器会触发每条收到的消息.但是有一个很好的解决方法:
设置过滤规则,为所有传入消息分配一个特殊标签"ToBeProcessedByScript"作为示例.由于通配符在Gmail过滤器中不起作用,请使用to:字段.
运行一个时间触发的脚本,用于收集所有新的消息线程GmailApp.getUserLabelByName("ToBeProcessedByScript").getThreads().在处理新消息之前删除特殊标签.
| 归档时间: |
|
| 查看次数: |
10224 次 |
| 最近记录: |