淹没在过多的 Gmail 简讯中? 虽然过滤取消订阅链接是一种已知的解决方案,但本文解决了一个更复杂的问题:有效管理大量现有的新闻通讯订阅。
挑战
订阅时事通讯的数量之大可能会让人难以承受。 手动查看和取消订阅每一项是很乏味的。 这里的目标不是删除旧电子邮件,而是创建当前、独特的时事通讯发件人的精简列表,以便有针对性地取消订阅。 Gmail 本身缺乏简单的解决方案。
解决方案:Google Apps 脚本
Google Apps 脚本提供了答案。这个强大的工具可让您编写代码与各种 Google 服务交互,自动执行重复任务。 该脚本在不同平台上有大约 100 个时事通讯订阅,事实证明,该脚本在将列表减少为仅必需订阅方面具有无价的价值。
以下是复制此解决方案的分步指南:
main
函数。 授权脚本访问您的 Gmail 和 Google 表格。脚本分解:
该脚本包含两个主要功能:
main()
: 此函数调用 _getUniqueMailingListSenders()
._getUniqueMailingListSenders()
: 此函数采用三个参数:searchOption
:Gmail 搜索查询(例如,list:()
表示一般新闻通讯)。title
:要添加到电子表格列的标题。clearSheet
:一个布尔值,用于确定是否清除现有工作表。则函数:
Set
收集唯一的发件人电子邮件地址。Map
中。完整代码:
<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中文网其他相关文章!