我的目標是確保立即永久洗掉來自 [email protected] 的所有 Gmail 郵件。
我創建了一個過濾器,為來自該地址的新郵件提供標簽“永遠洗掉”。接下來,我制作了一個谷歌腳本,它可以完全洗掉所有帶有“deleteforever”標簽的訊息。為了確定沒有其他訊息被洗掉,我額外檢查了這些訊息是否真的來自 [email protected]。這樣,當一個執行緒包含來自 [email protected] 的訊息和來自另一個地址的訊息時,應該只洗掉來自 [email protected] 的訊息。
我計劃每分鐘運行一次。我有3個問題:
- 這個演算法是否總是完全洗掉來自 [email protected] 的所有新訊息?
- 這個演算法是否永遠不會洗掉來自另一個發件人的訊息?
- 假設 [email protected] 不發送很多電子郵件,這不會花費太多運行時間嗎?(我看到每天有 1 小時的限制。)
function extractEmailAddress(header) {
return header.match(/[^@<\s] @[^@\s>] /)[0];
}
function deleteForever() {
var threads, msgs, label1, label2, sender,message,messageId;
label1="[email protected]";
label2="[email protected]";
threads= GmailApp.getUserLabelByName("deleteforever").getThreads();
msgs = GmailApp.getMessagesForThreads(threads);
for (var i = 0 ; i < msgs.length; i ) {
for (var j = 0; j < msgs[i].length; j ) {
message=msgs[i][j];
sender = extractEmailAddress(message.getFrom());
if (sender==label1 || sender==label2){
messageId=message.getId();
Gmail.Users.Messages.remove("me", messageId);
}
}
}
}
更新
受@TheMaster 評論的啟發,以下策略解決了潛在的運行時問題:
- 修改 Gmail 中的過濾器,以便來自 [email protected] 的郵件跳過收件箱。
-隱藏“永遠洗掉”檔案夾
現在腳本可以每 5 分鐘運行一次,或者以更低的頻率運行。
uj5u.com熱心網友回復:
由于您愿意按照 TheMaster 的建議將通知靜音并以較低頻率運行腳本/函式,因此我建議您使用 進一步改進它Gmail API,特別batchDelete是提高性能。
腳本:
function deleteForever() {
label_name = 'deleteforever';
sender1 = '[email protected]';
sender2 = '[email protected]';
// get labelId of label_name
var labelId = Gmail.Users.Labels.list("me").labels.filter(label => label.name == label_name)[0].id;
// filter messages where it has labelId and from either sender1 or sender2
var messages = Gmail.Users.Messages.list("me", {
"labelIds": labelId,
"q": `{from: ${sender1} from: ${sender2}}`
}).messages;
// if messages is not empty
if(messages){
// get ids of the messages
var ids = messages.map(message => message.id);
// bulk delete the messages
Gmail.Users.Messages.batchDelete({"ids": ids}, "me");
}
}
這將在滿足條件的情況下批量洗掉累積的訊息ID:
- 發件人是
sender1或sender2 - 有標簽
label_name。
筆記:
- 您將不再需要
extractEmailAddress。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/432781.html
上一篇:電子表格跳轉到當前日期問題
