google-apps-script - 使用 Google Apps 脚本过滤不是来自给定域的电子邮件
问题描述
在 Google Apps 脚本中,我正在执行以下脚本:
var filter = "in:inbox from:-domain.com",
threads = GmailApp.search(filter);
Logger.log(threads.length);
for (var i = 0; i < threads.length; i++) {
var msgs = threads[i].getMessages();
for (var j = 0; j < msgs.length; j++) {
Logger.log('Thread ' + i + ', Mess. ' + j + ' ' + msgs[j].getFrom() + ' ' + msgs[j].getSubject());
}
}
目的是列出收件箱中所有不是从某个地址发送的邮件domain.com
。文档中说GmailApp.search(query)
,query
“是搜索查询,就像您将其输入到 Gmail 中一样”。但是,我从代码中获得的结果与我in:inbox from:-domain.com
在 Gmail 搜索框中复制和粘贴的对话不同。
具体来说,通过 API,我得到了一个额外的线程。该线程由两条消息组成,其中初始消息来自“foo@department.domain.com”和答案“bar@domain.com”。鉴于filter
Gmail 应用程序结果,它们都不应该存在。为什么不是这样?
编辑
经过几天的测试,我看到了这里提到的问题和被延后的消息之间的相关性。此提示应有助于重现该问题。为了更好地理解和分析,我将发布一个专门针对此的问题。
解决方案
可以使用 Gmail API 检索邮件标头(发件人、主题等),(在 Apps 脚本中,它是 Gmail 高级服务)您可以发出请求,指定要检索的 metadataHeaders 参数。像下面的示例请求
推荐阅读
- tensorflow - 学习率和动量的值应该是多少?
- android - 根据条件以编程方式更改字符串颜色
- powershell - 获取变量中的匹配字符串
- apache-fop - Apache FOP PDF 未正确显示波斯字体
- html - 全宽的 SkewX() 数学公式(彼此相邻的 3 个 div)
- sql-server - 异常 ',' 附近的语法不正确。在 sql 服务器中
- c++ - 为什么优先级队列需要底层容器的front()、pop_back()而不是back()、pop_back()?
- java - 无法将 Parcelable 放入捆绑包中
- python - numpy 连接多个数组
- python - python:检查一个变量是否有值