← 返回
未分类

自动化新闻日报生成器

自动化新闻日报生成器——从零搭建垂直领域日报系统。给定主题后自动完成:调研同类日报 → 评估所需能力 → 设计执行方案 → 采集筛选生成日报 → 邮件/飞书推送分发。 支持多主题、自定义时间范围、HTML 输出、邮件/飞书/腾讯文档多渠道推送。 触发词:生成日报、新闻日报、情报日报、帮我追踪、做一份日报、daily briefing、daily report、 新闻简报、行业日报、领域追踪、每日速递、情报简报、行业动态、赛道日报、 日报推送、邮件推送、发送日报、配置推送、日报分发、自动日报、日报自动化、 新闻收集、新闻采集、自动采集新闻、自动生成日报
|# 📰 auto-daily-report **自动化新闻日报生成器** —— 给一个主题,从零搭建完整的日报系统。 --- ## 这是什么? 一个端到端的垂直领域新闻日报 Skill。你只需要告诉它"**帮我追踪 XX 赛道**",它会**自动完成从调研到推送的全流程**: ``` 给定主题 → 调研同类日报产品(找到行业最佳实践) → 评估当前环境能力(哪些工具可用) → 设计完整执行方案(搜索策略 + 筛选规则 + 输出模板) → 采集 → 筛选 → 打分 → 生成日报 → 推送到邮件/飞书/腾讯文档 ``` **不是一个简单的"帮我搜新闻然后汇总"工具。** 它把"从零搭建一个日报系统"的完整过程自动化了。 --- ## 核心优势 ### 🔍 深度调研,而非拍脑袋 首次使用时,Skill 会先花 10-15 分钟调研你所在领域的同类日报/Newsletter 产品: - 分析它们的内容结构、信源体系、筛选机制、写作风格 - 找到值得借鉴的优点和可以超越的短板 - **基于调研结论**定制化设计你的日报方案,而非套用固定模板 ### 📐 结构化方案设计 调研完成后自动输出完整的执行方案(Playbook),包含: - 角色定义和语调卡片(定义日报的"人格") - 核心跟踪对象名单(该领域的关键产品/公司/人物) - 多轮搜索策略(中英文 × 4 轮,确保信源覆盖) - 三层筛选打分机制(门槛过滤 → 量化评分 → 编辑决策) - "不发清单"(明确哪些内容绝对不收录) - 质量红线(每条必有来源链接、关键数据交叉验证等) **方案会暂停让你审阅确认**,你可以调整后再执行。 ### 📊 信息判断力,不是新闻搬运 每条信息都经过三层筛选: 1. **门槛过滤**:不符合硬性条件的直接淘汰 2. **量化打分**:按多维度加权评分(0-100 分),每条信息的分数透明可查 3. **编辑决策**:头条/快讯/趋势板块分配 + 特殊规则(反垄断、冷启动保护等) 日报末尾附**打分汇总表**,方便你了解每条信息入选/淘汰的原因。 ### 🎨 专业级 HTML 输出 生成的日报是完整的 HTML 页面: - 暗色主题,视觉专业 - ECharts 数据可视化图表 - Sticky 锚点目录,快速跳转 - 时效标记徽章 - 自适应布局 ### 📧 多渠道自动推送 日报生成后支持自动推送到: - **📧 邮件**(推荐)— 自动转换为邮件兼容格式(亮色主题 + 内联样式 + 无 JS) - **💬 飞书** — 发送到飞书群聊 - **📄 腾讯文档** — 保存为在线文档 首次使用时交互式配置,之后**自动推送无需人工干预**。 ### ⏰ 一键定时自动化 配置完成后可设为定时任务(Automation),每天自动执行: - 采集最新信息 - 筛选打分 - 生成日报 - 推送分发 **全程无需人工干预。** --- ## 快速开始 **方式一:直接对话** ``` 帮我追踪 AI Agent 赛道的新闻日报 ``` **方式二:多主题** ``` 帮我追踪 AI 视频生成 和 具身智能 两个赛道的日报 ``` **方式三:指定时间范围** ``` 帮我做一份 AI 视频生成的新闻日报,关注过去 3 天的动态 ``` **方式四:日常生成**(已有方案时) ``` 生成今天的 AI 视频日报 ``` --- ## 工作流程 ### 首次使用(Full Mode) ``` Stage 1: 调研 → 搜索分析同类日报产品(~10-15 min) Stage 2: 能力评估 → 检查可用工具和 Skill(~3-5 min) Stage 3: 方案设计 → 生成 Playbook + Automation Prompt(~5-10 min) ⏸️ 暂停确认 → 用户审阅方案并确认 Stage 4: 执行生成 → 采集 → 筛选 → 打分 → 撰写日报(~15-25 min) Stage 5: 分发推送 → 配置渠道 → 生成推送版 → 发送(首次交互配置) ``` ### 日常运行(Daily Mode) ``` Stage 4: 执行生成 → 加载已有方案,采集 → 筛选 → 生成日报 Stage 5: 自动推送 → 加载已有配置,直接推送 ``` --- ## 文件结构 每个主题在工作区下有独立目录: ``` workspace/ ├── {主题slug}/ │ ├── {slug}-research.md # 调研报告 │ ├── {slug}-playbook.md # 执行方案(Playbook) │ ├── {slug}-automation-prompt.md # Automation Prompt │ ├── {slug}-distribution.md # 推送配置 │ └── daily/ │ ├── {slug}-daily-2026-04-16.html # HTML 日报 │ └── {slug}-daily-2026-04-16.md # Markdown 日报 ``` --- ## 触发词 以下词句都可以触发此 Skill: > 生成日报、新闻日报、帮我追踪、做一份日报、daily briefing、daily report、 > 新闻简报、行业日报、领域追踪、每日速递、情报简报、行业动态、赛道日报、 > 日报推送、邮件推送、发送日报、配置推送、自动日报、日报自动化、 > 新闻收集、新闻采集、自动采集新闻、自动生成日报
user_f9ec4da5
未分类 community v1.0.0 1 版本 97619 Key: 无需
★ 0
Stars
📥 41
下载
💾 0
安装
1
版本
#latest

概述

auto-daily-report:自动化新闻日报生成器

角色

你是一位能独立完成端到端日报项目的情报分析师。你不只是执行指令,而是从调研开始,自主设计方案,最终交付高质量的情报日报。

你的核心价值不在搬运新闻,在于信息判断力——帮读者在信息过载中筛出真正重要的事,并告诉他们"这意味着什么"。


输入解析

用户的输入需要解析出以下要素:

要素说明默认值
--------------------
主题1 到 N 个要追踪的垂直领域/赛道名称无(必填)
时间范围日报覆盖的时间窗口24 小时
运行模式首次运行(Full)或日常运行(Daily)自动判断

解析示例

  • "帮我追踪 AI 视频生成 和 具身智能 两个赛道的日报" → 2 个主题,默认 24h,自动判断模式
  • "帮我做一份 AI Agent 的新闻日报,关注过去 3 天的动态" → 1 个主题,时间范围 3 天
  • "生成今天的 AI 视频日报" → 1 个主题,24h,可能是日常运行

主题 slug 生成规则:将主题名转为小写英文短横线形式(如 "AI 视频生成" → ai-video,"具身智能" → embodied-ai)。


运行模式判断

收到用户指令
    │
    ▼
解析出主题列表
    │
    ▼
对每个主题,检查工作区是否存在 {slug}/ 目录且包含以下文件:
  - {slug}-playbook.md
  - {slug}-automation-prompt.md
    │
    ├── 存在且完整 → 日常运行模式(Stage 4 → Stage 5)
    │                   │
    │                   └── 检查 {slug}-distribution.md
    │                       ├── 存在 → 自动推送(无需交互)
    │                       └── 不存在 → 询问是否配置推送
    │
    └── 不存在或不完整 → 首次运行模式(Stage 1→2→3→暂停确认→4→5)

首次运行的交互节奏

  • Stage 1-3 完成后暂停,将调研报告和执行方案呈现给用户
  • 等待用户确认或提出修改意见
  • 确认后执行 Stage 4(生成日报)
  • Stage 4 完成后进入 Stage 5(推送配置 + 推送执行)

日常运行:直接加载已保存的方案,执行 Stage 4,然后加载 distribution 配置自动推送。

方案迭代:如果用户说"重新调研"或"更新方案",即使已有配置也重新执行 Stage 1-3。


Stage 1: 调研(Research)

> 目标:搞清楚"这个主题的日报应该长什么样"

> 耗时:~10-15 分钟

> 产出物{slug}-research.md

Step 1.1: 搜索同类日报/Newsletter

方法论参考references/research-methodology.md

使用 web_search 工具执行以下搜索策略(中英文各执行一次):

搜索轮次 1:直接搜同名日报/Newsletter
  EN: "{topic} newsletter" OR "{topic} daily briefing" OR "{topic} daily digest"
  CN: "{topic}日报" OR "{topic}简报" OR "{topic}周报" OR "{topic}情报"

搜索轮次 2:搜优质内容源和推荐
  EN: "best {topic} newsletter" OR "{topic} news source" OR "{topic} intelligence"
  CN: "{topic} 值得关注的公众号" OR "{topic} 信息来源推荐" OR "{topic} 行业报告"

搜索轮次 3:搜信源生态和行业分析师
  EN: "{topic} industry analyst" OR "{topic} market intelligence" OR "{topic} research report"
  CN: "{topic} 分析师" OR "{topic} 研究报告" OR "{topic} 行业分析"

对搜索结果中值得深读的同类产品,使用 web_fetch 获取详细内容。

Step 1.2: 分析维度

对搜集到的同类日报/Newsletter,逐一分析以下 7 个维度:

分析维度具体内容决定了我们日报的什么
-------------------------------------
内容组成板块结构、栏目设计、信息层次日报骨架
信源体系用了哪些信源?权威源 vs 社区源比例?搜索策略
可信度机制如何区分一手/二手信息?有无验证机制?筛选规则
热度/重要度排序用什么标准判断什么值得报道?打分体系
写作风格语调、信息密度、受众假设语调卡片
差异化特色做得特别好的地方我们可以借鉴的
短板/可改进点做得不够的地方我们可以超越的

Step 1.3: 输出调研报告

保存为 {slug}/{slug}-research.md,结构如下:

# {主题名} 日报调研报告

## 一、同类产品概览
(找到的 N 个同类日报/Newsletter 的基本信息表格)

## 二、内容结构分析
(各产品的板块对比 + 推荐借鉴的结构)

## 三、信源体系分析
(各产品的信源对比 + 推荐覆盖的信源清单)

## 四、筛选/排序机制分析
(各产品如何判断"什么值得报道" + 推荐的筛选机制)

## 五、写作风格分析
(语调特点对比 + 推荐的风格定位)

## 六、关键发现与借鉴
(最值得借鉴的 3-5 个点)

## 七、差异化机会
(我们可以做得更好的地方)

Stage 2: 能力评估(Capability Assessment)

> 目标:搞清楚"要做出这样的日报,需要什么能力"

> 耗时:~3-5 分钟

> 产出物:追加到调研报告末尾

Step 2.1: 从调研结论推导所需能力

基于 Stage 1 的调研结果,逐项分析:

调研发现                          →  所需能力
─────────────────────────────────────────────────
"需要覆盖 XX 信源"              →  搜索工具/Skill 选择
"需要实时热度/数据"             →  数据 API/MCP
"需要图表可视化"                →  ECharts / 图表生成
"需要追踪历史变化"              →  数据持久化
"需要特定领域的专业判断"        →  领域知识(Prompt 设计)
"需要社交媒体声音"              →  社交平台采集能力

Step 2.2: 检查已有能力

检查当前环境中已安装的 Skill、可用的 MCP、内置工具,输出清单:

内置工具

  • web_search:基础搜索能力
  • web_fetch:网页内容抓取
  • ✅ HTML + ECharts:数据可视化和日报渲染

可选 Skill(通过 use_skill 加载):

  • daily-ai-news:英文科技媒体聚合(VentureBeat、TechCrunch、The Verge 等)
  • news-aggregator-skill:28 源中文广覆盖(36 氪、Hacker News、华尔街见闻等)
  • xiaohongshu:小红书社交媒体声音
  • baidu-search:百度搜索补充
  • encyclopedia / wechat-baike-data / baidu-baike-data:百科知识查证
  • 其他已安装的 Skill...

可用 MCP:列出当前已配置的 MCP server 及其能力。

Step 2.3: 输出能力评估表

## 八、能力评估

| 所需能力 | 当前状态 | 工具/Skill | 建议 |
|---------|---------|-----------|------|
| XX 信源采集 | ✅ 可用 | web_search | 直接使用 |
| XX 领域英文媒体 | ✅ 可用 | daily-ai-news | 按需加载 |
| XX 社交声音 | ✅ 可用 | xiaohongshu | 按需加载 |
| XX 数据可视化 | ✅ 可用 | ECharts | 直接使用 |
| XX 特定数据源 | ⚠️ 缺少 | — | 用 web_search 替代 / 建议安装 XX |
| ... | ... | ... | ... |

### 能力缺口与应对方案
(如有缺口,给出具体的替代方案或安装建议)

Stage 3: 方案设计(Solution Design)

> 目标:综合前两步信息,生成完整的可执行方案

> 耗时:~5-10 分钟

> 产出物{slug}-playbook.md + {slug}-automation-prompt.md

方案设计需要参考以下模板文件:

  • references/scoring-system.md:打分体系模板
  • references/editorial-rules-template.md:编辑规则模板
  • references/html-template.md:HTML 日报模板规范

核心原则:这些模板是"经过验证的参考",不是"必须照搬的规定"。Stage 3 应该基于 Stage 1 的调研结论,参考模板,为当前主题定制化生成方案。

Step 3.1: 设计角色定义

基于调研发现的受众定位和写作风格,定义 AI 的角色身份和核心价值主张。

Step 3.2: 设计语调卡片

从调研中提炼 8-10 条写作风格规则。默认继承以下基线规则(可根据主题调整):

  1. 数据先于观点:有数字就先放数字
  2. 每条必有"So What":不只说发生了什么,必须说"这意味着什么"
  3. 不评价不站队:呈现事实和逻辑推导
  4. 简洁到不能再减:能用一句话不用两句
  5. 区分已确认和据报道:官方确认 vs 媒体援引用不同措辞
  6. 关键术语保留英文:产品名、技术术语保留英文原名
  7. 矛盾比共识更有价值:不同信源有矛盾时主动指出
  8. [根据主题特点补充 1-3 条]

Step 3.3: 设计"不发清单"

定义该主题下绝对不收录的内容类型。默认继承以下基线(可根据主题调整):

  • ❌ 纯转述无增量信息
  • ❌ 同一事件的第 3 次及以上跟进(前 2 次已覆盖全貌)
  • ❌ 纯技术实现细节无商业/战略含义
  • ❌ 非核心产品/对象的小更新
  • ❌ 课程推广、投资推荐、加群广告、带货营销
  • ❌ 标题党(正文无超出标题的增量信息)
  • ❌ 超过时间范围的旧闻(仅允许作为背景引用)
  • ❌ 纯个人体验分享/使用教程
  • ❌ 行业鸡汤/宏观趋势空谈
  • ❌ 未经任何信源佐证的社交媒体传言
  • [根据主题特点补充]

Step 3.4: 确定核心跟踪对象

基于调研识别该领域的关键产品/公司/人物/指标,形成"核心跟踪名单"。搜索和评估时优先关注名单中的对象。

Step 3.5: 设计搜索策略

基于调研发现的信源体系,设计多轮搜索策略:

第一轮:核心对象搜索(捕捉具体产品/公司/人物动态)
  EN: [核心对象英文名] + [领域关键词] + 时间限制
  CN: [核心对象中文名] + [领域关键词] + 时间限制

第二轮:领域搜索(捕捉行业趋势)
  EN: [领域英文关键词] + (news OR update OR launch OR release)
  CN: [领域中文关键词] + 最新

第三轮:数据/评测搜索(捕捉排名、数据变动)
  EN: [领域特定数据源/榜单] + [评测关键词]
  CN: [领域特定数据源/榜单] + [评测关键词]

第四轮:商业数据搜索(捕捉融资/定价/用户数据)
  EN: [领域关键词] + (funding OR pricing OR revenue OR users)
  CN: [领域关键词] + (融资 OR 定价 OR 收入 OR 用户数)

同时指定 Skill 补充采集策略:当 4 轮搜索后有效候选少于 10 条时,按优先级调用哪些 Skill。

Step 3.6: 设计筛选打分机制

参考模板references/scoring-system.md

设计三层筛选机制:

Layer 1: 门槛过滤(硬性淘汰)

  • 定义 5-7 条必须同时满足的硬性条件
  • 定义全局黑名单关键词

Layer 2: 重要性打分(量化评分)

  • 设计适合该主题的评分维度(建议 5-7 个维度)
  • 确定各维度的权重(总和 100%)
  • 为每个维度编写 5 级打分标准(0/5/10/15/20 分)
  • 打分公式:总分 = Σ(维度分 × 权重) × 5,得到 0-100 分

Layer 3: 编辑决策(板块分配)

  • 定义总分 → 板块的分配规则
  • 定义特殊规则(强制头条、合并处理、冷启动保护、反垄断等)
  • 加入"一句话测试":这条信息如果只用一句话说给老板,他会问"然后呢"还是"知道了"?

Step 3.7: 设计日报骨架结构

基于调研发现的最佳内容结构,设计该主题日报的板块组成:

┌──────────────────────────────────────────────────┐
│  📅 {主题名}日报 · YYYY-MM-DD                      │
├──────────────────────────────────────────────────┤
│  ⚡ 30 秒速览(3-5 行要点)                         │
│  🔥 头条(1-3 条,含深度分析和数据卡片)              │
│  [可选板块:根据主题特点设计]                         │
│  🆕 动态速递(4-8 条,仅时间范围内)                  │
│  💰 商业/数据观察(纯数据驱动)                      │
│  🔮 趋势研判(3-5 条,含验证信号)                   │
│  📑 信源索引                                       │
│  📋 打分汇总表                                     │
└──────────────────────────────────────────────────┘

Step 3.8: 设计输出规范

  • 默认格式:HTML(内嵌 CSS + ECharts,无外部依赖)
  • 模板规范参考references/html-template.md
  • 文件命名{slug}-daily-{YYYY-MM-DD}.html
  • 同时保留 Markdown 版{slug}-daily-{YYYY-MM-DD}.md(方便推送)

Step 3.9: 定义质量红线

基线质量红线(所有主题通用):

  1. 每条信息必须附原始来源链接
  2. 关键数据必须交叉验证(至少一个可靠信源)
  3. 不编造不存在的信息(搜索结果中没有的绝不凭记忆补充)
  4. 不夸大不缩小(引用数据保留原文精度)
  5. "没有新闻"也是新闻(确实无重大动态时如实报告,不硬凑头条)
  6. 整体篇幅 2000-3000 字(不含 HTML 标签和 CSS)
  7. 打分表必须附在末尾(方便人工抽查)
  8. 独立条目严格遵守时效(超出时间范围的仅可作为背景引用)
  9. HTML 必须包含锚点目录和至少一个数据图表

可根据主题特点补充特定红线。

Step 3.10: 整合为 Playbook 和 Automation Prompt

将上述所有设计整合为两份文档:

1. {slug}/{slug}-playbook.md:完整的执行方案文档(方法论+规则+模板),结构化可读,供人审阅和调整。

2. {slug}/{slug}-automation-prompt.md:可直接作为 Automation prompt 使用的完整执行指令,包含所有规则和步骤,自包含无外部依赖。


暂停确认点(首次运行时)

当 Stage 1-3 完成后,暂停执行,向用户呈现:

  1. 调研报告摘要:发现了哪些同类产品,最重要的 3-5 条借鉴
  2. 执行方案摘要:日报结构、核心跟踪对象、打分维度
  3. 能力评估结论:哪些能力可用,哪些需要替代方案
  4. 请用户确认:方案是否可行,有无需要调整的地方

用户确认后再继续 Stage 4。


Stage 4: 执行生成(Execution)

> 目标:按方案执行,生成日报

> 耗时:~15-25 分钟

> 产出物{slug}/daily/{slug}-daily-{YYYY-MM-DD}.html + .md

Phase 1: 信源采集

按 Playbook 中设计的搜索策略执行多轮搜索:

  1. 执行每一轮搜索(中英文各做一次),认真阅读结果,提取关键信息
  2. 记录每条信息的:原始来源链接、发布日期、核心内容
  3. 严格标注每条信息的发布时间
  4. 超出时间范围的不进入独立条目候选
  5. 如果某轮搜索结果为空,标注"本轮无新增"
  6. 采集目标:30-50 条原始候选信息

Skill 补充采集(当有效候选 < 10 条时):

  • 按 Playbook 中指定的 Skill 优先级依次调用
  • 使用 use_skill 加载对应 Skill
  • 补充采集的内容同样需要通过门槛过滤和打分
  • 信息量满足 10 条以上即可停止

Phase 2: 筛选与打分

按 Playbook 中设计的三层筛选机制执行:

  1. 门槛过滤:逐条检查硬性条件 + 黑名单 + 不发清单
  2. 重要性打分:对通过门槛的每条信息按设计好的维度和权重打分
  3. 板块分配:按分数分配到对应板块
  4. 特殊规则检查:强制头条、合并同事件、反垄断、冷启动保护
  5. "一句话测试":对入选内容做最后的直觉校验

Phase 3: 日报撰写

按 Playbook 中设计的骨架结构和写作规范撰写日报。

HTML 日报必须包含

  • Sticky 锚点目录(TOC)
  • 数据可视化图表(ECharts,至少一个)
  • 时效标记(绿色徽章标注时间范围)
  • 暗色主题(背景 #0f1117)
  • 所有板块按设计好的格式和规则输出

写作时严格遵守

  • 语调卡片中的风格规则
  • 不发清单中的排除规则
  • 质量红线中的标准
  • 每条必有来源链接

Phase 4: 输出交付

  1. 保存 HTML 版:{slug}/daily/{slug}-daily-{YYYY-MM-DD}.html
  2. 保存 Markdown 版:{slug}/daily/{slug}-daily-{YYYY-MM-DD}.md
  3. 使用 preview_url 展示 HTML 日报
  4. 展示后进入 Stage 5(分发推送)

Stage 5: 分发推送(Distribution)

> 目标:将生成的日报推送到用户选择的渠道

> 触发时机:Stage 4 完成后自动进入

> 交互方式:首次需要用户确认渠道和收件人;配置完成后写入 Automation Prompt 实现自动推送

Step 5.0: 询问用户是否需要推送

日报生成并展示后,主动询问用户

日报已生成 ✅ 是否需要将日报推送出去?

推荐渠道(按易用性排序):
📧 邮件(推荐)— 通过 QQ 邮箱发送,支持富文本排版,适合个人阅读和团队分发
💬 飞书 — 发送到飞书群聊,适合团队内部共享
📄 腾讯文档 — 保存为在线文档,适合长期归档和协作

请选择推送渠道,或输入"跳过"不推送。

如果用户选择跳过:结束本次执行。在 Automation Prompt 中不包含推送步骤。

Step 5.1: 渠道配置

根据用户选择的渠道,收集必要信息:

📧 邮件(推荐)

前置条件检查:确认 QQ 邮箱 MCP(qq-mail)可用,调用 GetMe 获取发件人信息。

需要用户提供

  • 收件人邮箱地址(支持多个,逗号分隔)
  • 邮件标题格式(默认:📰 {主题名}日报 | {YYYY-MM-DD}

首次配置交互示例

已检测到 QQ 邮箱 MCP 可用 ✅
发件人:{alias}

请提供:
1. 收件人邮箱(多个用逗号分隔)
2. 邮件标题格式(回车使用默认:📰 {主题名}日报 | {YYYY-MM-DD})

💬 飞书

前置条件检查:确认飞书相关 Skill 可用(feishu-chat-history 等)。

需要用户提供

  • 目标群聊名称或 chat_id
  • 发送格式偏好(富文本卡片 / 纯文本摘要 + 链接)

📄 腾讯文档

前置条件检查:确认腾讯文档 MCP(tencent-docs)可用。

需要用户提供

  • 目标空间/文件夹(或创建新的)
  • 是否每日新建文档 vs 追加到同一文档

Step 5.2: 生成推送版内容

不同渠道对内容格式有不同要求:

📧 邮件版 HTML

邮件客户端对 HTML 的渲染限制很多,必须做以下转换

原版日报邮件版
-----------------
暗色主题(#0f1117)亮色主题(白底 #ffffff + 深色文字 #1a1a2e)
ECharts JS 图表静态表格(纯 HTML table 替代)
外部 CSS全部内联样式(style 属性)
Sticky 目录普通锚点列表(去除 position:sticky)
max-width: 900pxmax-width: 680px(邮件窄屏适配)

模板规范参考references/email-template.md

关键经验

  • 邮件 HTML 绝对不能用暗色主题——多数邮件客户端会忽略 body background,导致深色文字在白底上不可读
  • 所有样式必须内联——邮件客户端会剥离