var cutoffDate = new Date(Date.now() - 44 * 60 * 60 * 24 * 1000);
Application("Mail").move(Application("Mail").inbox.messages.whose({ dateSent: { '<': cutoffDate } }), {to: Application("Mail").mailbox["Archive"])
这个问题是双管齐下的。一个插件是我的Apple Mail连接到由企业Microsoft Active Directory管理的Microsoft Exchange服务器。在AppleScript和JavaScript中,这似乎使Mail的脚本编写复杂化。即使我只有一个,我也经常要引用正确的“帐户”。 所以,我确实设法让这个工作:
var cutoffDate = new Date(Date.now() - 44 * 60 * 60 * 24 * 1000);
Application("Mail").move(Application("Mail").inbox.messages.whose({ dateSent: { '<': cutoffDate } }), {to: Application("Mail").accounts.byName("Company Exchange").mailboxes.byName("Deleted Items")});
但是,我很犹豫要停在这里,因为分叉2:帐户名称“公司交换”似乎会随着时间的推移而定期更改。我曾经看到它有时被称为“交换”,然后在其他时间(如现在)它被称为“公司交换”。到目前为止,我发现的唯一常数是“交换”这个词在某个地方。
为了解决这个问题,我一直习惯做以下事情:
var Mail = new Application("Mail")
var account = Mail.accounts.whose({
name: { _contains: 'exchange' }
}, {
ignoring: 'case'
});
var inbox = account.mailboxes.whose({
name: { _contains: 'inbox' }
}, {
ignoring: 'case'
});
var trash = account.mailboxes.whose({
name: { _contains: 'deleted items' }
},{
ignoring: 'case'
});
然而,
Mail.move(inbox.messages.whose({ dateSent: { '<': cutoffDate }}), {to: trash});
似乎没有用。只是想知道它是否无法工作,或者我是否有语法错误阻止它工作。