淹沒了溢出的Gmail新聞通訊? 雖然過濾退訂連結是一個已知的解決方案,但本文解決了一個更複雜的問題:有效管理大量現有新聞通訊訂閱。
>挑戰
>解決方案:Google Apps腳本
Google Apps腳本提供了答案。這個功能強大的工具使您可以編寫程式碼與各種Google服務交互,並自動化重複任務。 跨不同平台的大約100個新聞通訊訂閱,該腳本在將清單僅減少為基本訂閱中是無價的。>
這是複製此解決方案的逐步指南:
main
:
>此函數呼叫。main()
>此函數有三個參數:
_getUniqueMailingListSenders()
_getUniqueMailingListSenders()
:要新增到電子表格列的標題。 searchOption
list:()
Set
收集唯一的發送者電子郵件地址。
Map
動態地將列添加到Google表格,包括時間戳。 結論
<code class="language-javascript">function _getUniqueMailingListSenders( searchOption, title, clearSheet = true, ) { const threads = GmailApp.search(searchOption); const senders = new Set(); threads.forEach(thread => { const messages = thread.getMessages(); messages.forEach(message => { senders.add(message.getFrom()); }); }); const emailData = new Map(); senders.forEach((sender) => { const emailMatch = sender.match(/<([^>]+)>/); const email = emailMatch ? emailMatch[1] : sender; const name = sender.replace(emailMatch ? emailMatch[0] : '', '').trim(); if (!emailData.has(email)) { emailData.set(email, name); } }); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); if (clearSheet) { sheet.clear(); } const lastColumn = sheet.getLastColumn(); const emailColumn = lastColumn + 1; const nameColumn = lastColumn + 2; const currentDate = new Date().toLocaleDateString(); sheet.getRange(1, emailColumn).setValue(`${title} - Email - ${currentDate}`); sheet.getRange(1, nameColumn).setValue(`${title} - Name - ${currentDate}`); let row = 2; emailData.forEach((name, email) => { console.log(`Adding data on column (${emailColumn}, ${nameColumn}) and row ${row}: `, {email, name}); sheet.getRange(row, emailColumn).setValue(email); sheet.getRange(row, nameColumn).setValue(name); row++; }); } function main() { _getUniqueMailingListSenders( 'list:()', 'Unique Email Senders', false, ); }</code>
Google Apps腳本提供了一種強大的解決方案,用於管理壓倒性的電子郵件訂閱。該腳本簡化了該過程,可以有效地審查並從不需要的新聞通訊中取消訂閱。 探索應用程序腳本以獲得其他潛在的自動化機會。 >與我聯繫:
>網站
以上是Apps 腳本 - 列出您 Gmail 中的所有電子報。選擇性取消訂閱變得容易的詳細內容。更多資訊請關注PHP中文網其他相關文章!