当我使用 GmailApp.getUserLabelByName(labelReceived).getThreads()
时,它会检索具有相同主题且在给定标签内外的同一日期收到的所有电子邮件。
是否有解决方案可以从唯一给定的标签获取电子邮件,而不按主题或日期对其进行分组?
注意:Gmail 设置中的对话 View 已关闭。
最佳答案
问题:
- 目前,似乎无法获取标有特定标签的电子邮件
消息
。只有带有标签的包含线程
才能通过库中内置的Apps脚本进行检索。
解决方案:
使用Advanced Gmail service连接到 Gmail api直接。
以下代码片段获取标有标签名称
test
的所有消息 ID。然后您可以使用GmailApp.getMessageById
将消息id
数组转换为GmailMessage
s
片段:
function getLabelledMessages(labelName = 'test') {
const labelIds = Gmail.Users.Labels.list('me').labels.find(
labelObj => labelObj.name === labelName
).id;
let messagesList, pageToken;
do {
messagesList = Gmail.Users.Messages.list('me', {
labelIds,
pageToken,
maxResults: 100,
});
const messages = messagesList.messages;
if (messages) console.log(JSON.stringify(messages));
} while ((pageToken = messagesList.nextPageToken) !== undefined);
}
关于multithreading - 使用 App-Script 从 Gmail 中的标签名称使用 getThreads() 时,如何防止按主题或日期分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64210227/