讓我先說我的問題,說我不是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