使用 App-Script 从 Gmail 中的标签名称使用 getThreads() 时如何防止按主题或日期分组?
How to prevent grouping by subject or date when using getThreads() from a label name in Gmail using App-Script?
当我使用 GmailApp.getUserLabelByName(labelReceived).getThreads()
时,它会检索所有具有相同主题且在同一日期收到的给定标签内外的电子邮件。
有没有一种解决方案可以从唯一给定的标签中获取电子邮件而不按主题或日期对其进行分组?
注意:Gmail 设置中的对话视图是关闭的。
问题:
- 目前,似乎无法获取带有特定标签的电子邮件
messages
。只有标有标签的包含 thread
可以通过库中内置的 Apps 脚本检索。
解决方案:
直接使用Advanced Gmail service to connect to the 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);
}
当我使用 GmailApp.getUserLabelByName(labelReceived).getThreads()
时,它会检索所有具有相同主题且在同一日期收到的给定标签内外的电子邮件。
有没有一种解决方案可以从唯一给定的标签中获取电子邮件而不按主题或日期对其进行分组?
注意:Gmail 设置中的对话视图是关闭的。
问题:
- 目前,似乎无法获取带有特定标签的电子邮件
messages
。只有标有标签的包含thread
可以通过库中内置的 Apps 脚本检索。
解决方案:
直接使用Advanced Gmail service to connect to the 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);
}