gpt4 book ai didi

google-apps-script - 如何使用 Google App Scripts 查询未被丢弃的电子邮件?

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

我正在尝试为 Gmail 创建一个脚本以仅接收“未删除”的电子邮件,但我也收到了已删除的电子邮件。

为什么?

function fromGmailToDrive() {
var query = "in:inbox -in:trash has:attachment";
var threads = GmailApp.search(query);

threads.forEach((t) => {
const messages = t.getMessages()
messages.forEach((m) => {
console.log("m.isInTrash():", m.isInTrash()) //<- some are true, why?
})
})
}

如果我在 Gmail 浏览器应用程序中使用该查询,则该查询有效。

最佳答案

更新的答案:

方法isInTrash() 都支持 threadsmessages .在您的解决方案中,您正在检查被丢弃的消息,而不是被丢弃的线程。

如果你想检查一个线程是否被丢弃,你应该在threads上应用isInTrash()方法:

function fromGmailToDrive() {
var query = "-in:trash has:attachment";
var threads = GmailApp.search(query);

threads.forEach((t) => {
console.log("m.isInTrash():", t.isInTrash());
})
}

可选的解决方法

获取所有trashed threads并从 threads 中排除它们(!includes):

function fromGmailToDrive() {
var query = "-in:trash has:attachment";
var threads = GmailApp.search(query);
var trashThreadsIDs = GmailApp.getTrashThreads().map(t=>t.getId());
var clean_threads = threads.filter(t=>!trashThreadsIDs.includes(t.getId()));

clean_threads.forEach((t) => {
const messages = t.getMessages()
messages.forEach((m) => {
console.log("m.isInTrash():", m.isInTrash()) //<- some are true, why?
})
})
}

关于google-apps-script - 如何使用 Google App Scripts 查询未被丢弃的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66425322/

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