当我使用GmailApp.getUserLabelByName(labelReceived).getThreads()
它时,它将检索具有相同主题并且在给定标签内外相同日期收到的所有电子邮件。
有没有一种解决方案可以从唯一给定的标签中获取电子邮件,而无需按主题或日期进行分组?
注意:在Gmail设置中,对话视图处于关闭状态。
更新:
function sendingAutoEmails(){
var labelReceived = "Aanmelding Nieuwe";
var labelProcessed = "Aanmelding Bevestigingen verstuurd";
var labelProcessedEmails = GmailApp.getUserLabelByName(labelProcessed);
var labelReceivedEmails = GmailApp.getUserLabelByName(labelReceived);
var threads = labelReceivedEmails.getThreads();
for(var i = 0; i < threads.length; i++){
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++){
var message = messages[j];
Logger.log(message);// here I suppoesed to get one GmailMessage,
//but insted I am getting all the email that were received in the same day
//of the current scanned email, they all have the same subject.
if(message.getSubject() === "Nieuwe Aanmelding Website"){
emailData.dateTime = message.getDate();
emailData.body = message.getPlainBody();
//code to process the body information
sendingTemplatesEmails();
message.getThread().addLabel(labelProcessedEmails);
message.getThread().removeLabel(labelReceivedEmails)
GmailApp.markMessageRead(message);
}
}
messages
带有特定标签的电子邮件,而thread
通过内置库中的Apps脚本,包含该标签的电子邮件没有被标签。以下代码段获取所有带有标签name的邮件ID test
。然后,您可以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);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句