首頁 > web前端 > js教程 > Apps 腳本 - 列出您 Gmail 中的所有電子報。選擇性取消訂閱變得容易

Apps 腳本 - 列出您 Gmail 中的所有電子報。選擇性取消訂閱變得容易

Linda Hamilton
發布: 2025-01-27 00:33:09
原創
194 人瀏覽過

Apps Script - List all the newsletters filling up your Gmail. Selective unsubscribing got easy


淹沒了溢出的Gmail新聞通訊? 雖然過濾退訂連結是一個已知的解決方案,但本文解決了一個更複雜的問題:有效管理大量現有新聞通訊訂閱。

>

挑戰

大量的訂閱電子報可能會變得壓倒性。 手動審查和取消訂閱每個人都是乏味的。 這裡的目標不是刪除舊電子郵件,而是要創建精簡的當前,獨特的新聞通訊發送者的列表,以取消訂閱。 gmail本身缺乏一個簡單的解決方案。

>解決方案:Google Apps腳本

Google Apps腳本提供了答案。這個功能強大的工具使您可以編寫程式碼與各種Google服務交互,並自動化重複任務。 跨不同平台的大約100個新聞通訊訂閱,該腳本在將清單僅減少為基本訂閱中是無價的。

>

這是複製此解決方案的逐步指南:>

    建立一個Google表格:
  1. 這將儲存產生的新聞通訊寄件者清單。 > >>存取應用程式腳本:
  2. 在您的Google表中,導航至「擴充功能」> “應用程式腳本。”
  3. 編寫腳本:下面的腳本從gmail中檢索新聞通訊發送者的唯一電子郵件地址以及他們的名字,並在電子表格中整齊地組織它們。
  4. >
  5. >儲存並執行:儲存腳本,給它一個描述性名稱,然後執行函數。 授權腳本存取您的Gmail和Google表格。
  6. >
  7. 審核和取消訂閱:電子表格將帶有獨特的電子郵件地址填充。 使用此清單在Gmail中取消訂閱。 main
  8. 腳本崩潰:
  9. 腳本包括兩個主要功能:>

>此函數呼叫

  • main()>此函數有三個參數: _getUniqueMailingListSenders()
  • :Gmail搜尋查詢(例如,通用新聞通訊)。
  • > _getUniqueMailingListSenders():要新增到電子表格列的標題。 >
      :一個布林值,以確定是否清除現有表。
    • searchOption list:()
    • 然後函數:
      1. >檢索與搜索條件匹配的所有電子郵件線程。
      2. 使用JavaScriptSet收集唯一的發送者電子郵件地址。
      3. >使用正則表達式提取發件人名稱。
      4. >在
      5. >中存儲電子郵件地址和名稱 Map動態地將列添加到Google表格,包括時間戳。 >
      6. 將唯一的發件人數據寫入電子表格。
      7. 將過程記錄到應用程序腳本執行日誌以進行調試。
      8. >
      9. 完成代碼:

      結論
      <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腳本提供了一種強大的解決方案,用於管理壓倒性的電子郵件訂閱。該腳本簡化了該過程,可以有效地審查並從不需要的新聞通訊中取消訂閱。 探索應用程序腳本以獲得其他潛在的自動化機會。 >與我聯繫:

      >網站

      LinkedIn
      • github
      • x(Twitter)

以上是Apps 腳本 - 列出您 Gmail 中的所有電子報。選擇性取消訂閱變得容易的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板