让我先说我的问题,说我不是JS开发人员,甚至是web开发人员,所以请耐心等待!我正在尝试创建一个gs脚本,用于删除具有特定标签并且来自给定发件人的年龄超过n个月的邮件。从Gmail API获取邮件发件人地址
我想我已经记下了,但Gmail API getFrom()
方法似乎以"First Last" <[email protected]>
的格式返回发件人的地址,而不仅仅是[email protected]
。目前我可以通过以下事实来解决这个问题:我知道这些信息,但是有没有更好的方法来完成此操作,以便代码在实际的电子邮件地址上单独运行?
我当前的代码:
function auto_delete_emails() {
var label = GmailApp.getUserLabelByName("foo");
var sender = "\"Foo Bar\" <[email protected]>";
if (label != null) {
var delayDays = 30
var maxDate = new Date();
maxDate.setDate(maxDate.getDate() - delayDays);
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages = GmailApp.getMessagesForThread(threads[i]);
var from = messages[0].getFrom();
if (from == sender) {
if (threads[i].getLastMessageDate < maxDate) {
threads[i].moveToTrash();
}
}
}
}
}
我已经看到,使用正则表达式来解决这个问题,但我不太了解的正则表达式,别提如何在这方面还是怎么着例如工作申请(或没“T!)。
对此代码的其他改进的建议也值得欢迎。
**正则表达式**是兄弟的唯一方法! 'var from = messages [0] .getFrom()。replace(/^.+ <([^>] +)> $ /,“$ 1”);' – iJay