Email Newsletter Digest

自动汇总 Gmail 中最近的新闻邮件,生成每日摘要并发送。

已扫描
适合谁
需要整理每日新闻邮件的职场人士、希望自动化信息聚合的效率爱好者
不适合谁
无 Gmail 账号或无法访问邮箱的用户、对自动化流程不熟悉的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @neeravmakwana/email-newsletter-digest

Skill 说明

命令、参数、文件名以原文为准

邮件新闻简报

使用此技能发送过去 1 天内收到的新闻简报邮件摘要。

每次调用开始时读取 settings.json。关于设置结构和维护者说明,请参见 [REFERENCE.md](REFERENCE.md)。

何时使用

当用户希望:

  • 发送新闻简报邮件
  • 将新闻简报发送给多人
  • 每天早上或其他周期性时间发送简报
  • 更新哪些标签被视为新闻简报
  • 更新哪些发件人被视为新闻简报
  • 更新接收简报的人

设置

每次调用开始时读取 settings.json

该设置文件包含:

  • newsletter_labels_csv
  • newsletter_senders_csv
  • digest_recipient_emails_csv
  • recipient_delivery_mode

规则:

  • newsletter_senders_csv 已配置,则 newsletter_labels_csv 可为空或 null
  • newsletter_labels_csv 已配置,则 newsletter_senders_csv 可为空或 null
  • 两者不能同时为空或 null
  • 若两者均配置,则 Gmail 搜索必须使用 OR 语义合并两组条件
  • digest_recipient_emails_csv 可包含一个或多个逗号分隔的邮箱地址
  • recipient_delivery_mode 控制多收件人邮件的发送方式
  • 支持值:

- individual:为每个收件人单独发送一封邮件

- group:发送一封邮件,所有收件人置于“收件人”字段中

  • 若未指定 recipient_delivery_mode,默认使用 group

代理工作流程

  1. 立即发送简短确认,例如:“我正在准备邮件新闻简报。”
  2. 读取 settings.json
  3. 验证至少配置了一个新闻简报筛选条件,并且至少配置了一个收件人邮箱。
  4. 在单个阻塞命令中运行位于 ~/.openclaw/skills/email-newsletter-digest/scripts/newsletter-digest.py 的内置执行脚本,设置较长的超时时间以等待其输出结果。不要后台运行,也不要依赖后续轮询来获取结果。
  5. 对每封匹配的新闻简报进行摘要,构建简报内容,并按配置的 recipient_delivery_mode 发送。
  6. 运行完成后,发送一条简短完成消息,说明已发送的收件人及包含的新闻简报数量。

若用户要求更新标签、发件人、收件人或收件人发送模式:

  • 编辑 settings.json
  • 保持逗号分隔格式
  • 移除重复项和空条目

若用户要求安排定时运行:

  • 使用 OpenClaw 的常规调度机制或 cron
  • 不要让用户自行编写 shell 命令
  • 若用户说“每天早上”但未指定时间,使用系统时区下的合理早晨时间

核心规则

  • 使用 gog gmail messages search 获取单个新闻简报邮件。
  • 优先使用 gog gmail thread get --full 提取正文。
  • 若正文看起来是占位符,回退到使用 gog gmail get --json 并提取最佳 MIME 部分。
  • 使用 summarize 将每封新闻简报转换为项目符号列表。
  • 除非用户明确要求使用其他摘要模型,否则让 summarize 使用其自身配置或默认模型。
  • 通过 Gmail 消息 ID 去重,确保每封新闻简报在每次运行中仅被摘要一次。
  • 仅包含最近 1 天内的匹配邮件。
  • 若未找到任何新闻简报,直接说明情况,不发送任何内容。
  • 若运行失败或所有摘要失败,向配置的收件人发送失败邮件,并尽可能说明可能原因。
  • 若部分新闻简报未能成功摘要,仍发送简报,并额外发送一封警告邮件说明失败情况。
  • 保持用户交互以自然语言为主。不要告诉用户自己运行 Python 或 shell 命令。

查询构造

根据设置文件构造 Gmail 搜索条件:

  • 仅使用标签:

- label:Newsletters newer_than:1d

  • 仅使用发件人:

- (from:a@example.com OR from:b@example.com) newer_than:1d

  • 两者均配置:

- (label:Newsletters OR label:finance OR from:a@example.com OR from:b@example.com) newer_than:1d

返回报告

  • 总是在开始工作前确认请求。
  • 成功运行后,说明发送给哪些收件人以及包含多少封新闻简报。
  • 对于设置更改,准确总结具体变更内容。
  • 对于定时运行,用自然语言确认执行频率。
  • gogsummarize 失败,应暴露错误信息而非隐藏。
  • 永不静默失败。若无法发送简报,需明确告知用户出错原因。
N
@neeravmakwana

已收录 1 个 Skill

相关推荐