使用 JXA 清理 Apple Mail 文件夹



我想编写一个 JXA 脚本,它会自动从我的文件夹中删除旧邮件。我找到了一个解决方案,但它非常慢,我想知道是否有办法加快速度。

这是我的脚本:

mailApp = Application("Mail");
mailApp.includeStandardAdditions = true;
var now = Date.now();
function calcDaysAge(date) {
return ~~((now-date)/3600/24/1000) //~~((now - date) / (24*60*60*1000);
}
function deleteMessagesOf(mailbox, minDaysAge) {
messages = mailApp.mailboxes.byName(mailbox).messages
for (var i=messages.length-1; i>=0; i--) {
message = messages[i]
date = new Date(message.dateReceived())
age = calcDaysAge(date)
if (age > minDaysAge) {
message.delete()
}
}
}
// delete mails older than 7 days from my Cronjobs mailbox.
deleteMessagesOf("Cronjobs", 7)

刚刚找到类似问题的答案。这似乎工作得更好,但是当有大量邮件要删除时,仍然会遇到超时:

mailApp = Application("Mail");
mailApp.includeStandardAdditions = true;
function deleteMessagesOf(mailbox, minDaysAge) {
var cutoffDate = new Date(Date.now() - minDaysAge * 60 * 60 * 24 * 1000);
messages = mailApp.mailboxes.byName(mailbox).messages.whose({ dateReceived: { '<': cutoffDate } })
if (messages.length > 0) {
mailApp.delete(messages)
}
}
deleteMessagesOf("Cronjobs", 7)

最新更新