我们很多人要求谷歌有一个选项,可以在 Gmail 中将未推迟的电子邮件标记为未读,但不幸的是,这没有发生。我说的是那些电子邮件。
ChatGPT 建议使用 google-app-scripts,但我没有找到正确的 API 来确定在某个时间间隔(例如过去 7 天)内哪些电子邮件已取消延后。
这是ChatGPT提出的代码,但是
snoozed
不是标签,可以改进吗?谢谢你
function markUnsnoozedEmailsAsUnread() {
var threads = GmailApp.search('label:inbox -label:snoozed'); // Search for un-snoozed emails in the inbox
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var messages = thread.getMessages();
// Check if the thread has the 'snoozed' label
var labels = thread.getLabels();
var hasSnoozedLabel = labels.some(function(label) {
return label.getName() === 'snoozed';
});
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
if (!message.isUnread() && hasSnoozedLabel) {
message.markUnread(); // Mark email as unread if it's not already and not snoozed
}
}
}
}
虽然我不确定是否能正确理解你的预期结果,但是下面的修改怎么样?
function markUnsnoozedEmailsAsUnread() {
var threads = GmailApp.search('in:snoozed');
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var messages = thread.getMessages();
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
if (!message.isUnread()) {
message.markUnread();
}
}
}
}
在此修改后的脚本中,通过
in:snoozed
搜索的电子邮件被设置为未读。