订阅推送(邮件)

按策略把仪表盘截图(可选 PDF)定时或手动推送到邮箱。与 嵌入分享 并列,属于「分享」下的主动投递能力。

产品入口:空间 → 订阅推送;仪表盘详情页邮件图标可跳转新建并预填仪表盘。


已落地效果(v1)

订阅管理

能力 说明
列表 按空间查看订阅;支持启停、编辑、删除
新建 / 编辑 主题、邮件标题、关联仪表盘与版本、截图宽度、周期、渠道、收件人、发件人与 PDF 选项
一次 / 周期 single:按 crontab 触发一次,发送成功后自动暂停period:按 crontab 重复
测试发送 发给自己(仅当前登录用户邮箱)或 发给全部收件人
推送记录 每次 cron / 测试 / 重发写入记录;失败可见错误摘要;支持对已保存策略的记录重发

渠道与收件人

落地
邮件 已支持;收件人为自由邮箱(标签输入),发送前校验格式
企业微信 UI 占位且禁用,提示「联系管理员开发该功能」;不落库推送
非法地址 如含 ..localhost 等会在发送前拦截,避免整批被 SMTP 拖垮

发件人(产品语义)

选项 实际行为
DataLuminary 邮件 From 为官方地址(如 [email protected]),显示名为产品官方
自己 SMTP From 仍为官方已验证地址(兼容 SES / Mail Manager 身份校验);显示名为当前用户,Reply-To 为用户邮箱

收件箱里看到的发件域名仍是官方域名;选「自己」时回复会回到个人邮箱。

邮件内容

  • HTML 正文内嵌仪表盘 PNG 截图(CID)
  • 可选附件:整页 PDF(策略勾选 PDF 时)
  • 纯文本兜底说明,避免仅支持纯文本的客户端空白

截图与渲染

  • 后端用无头浏览器打开 DataView 渲染页:#/render/dashboard/:uid
  • 按策略中的 仪表盘宽度 截图;等待页面 data-dashboard-ready 后再拍摄
  • 版本可选 latest 或指定版本 uid

使用流程(产品侧)

  1. 选择仪表盘与版本、截图宽度
  2. 填写主题 / 邮件标题、收件人邮箱
  3. 选择一次或周期,配置 crontab(产品内五段选择器)
  4. 选择发件人与是否附 PDF
  5. 保存后可 测试发送;列表中可 暂停 / 恢复
  6. 推送记录 核对成功 / 失败与收件人;需要时重发

crontab 产品序为:分 时 周 日 月(与常见 Linux cron 字段顺序不同,由后端转换为标准调度表达式)。


运维前提(影响「能否进收件箱」)

应用侧「推送成功」表示 SMTP 已接受投递(有 messageId),不等于一定进入收件箱。生产发信需:

说明
SMTP DataTalk 配置 SMTP_*MAIL_FROM_OFFICIAL(须为云厂商已验证身份)
出网规则 若使用 Amazon SES Mail Manager,Ingress 绑定的 Rule set 须含 Send to internet,且 IAM Role 具备 ses:SendEmail
域名 发信域 DKIM / SPF 已配置;账户具备对应发送配额
收件人 使用真实可投递邮箱;勿填 admin@localhost[email protected]

未配置 SMTP 时,测试 / 定时发送会失败并写入推送记录。


范围与后续

能力 状态
订阅 CRUD / 启停 / 测试 / 推送记录 / 重发 已落地
邮件截图 + 可选 PDF 已落地
官方 From + 自己 Reply-To 已落地
企微 / 其他 IM 渠道 规划中(UI 占位)
订阅时绑定仪表盘筛选 / 变量快照 未做(v1 推送当前渲染态)
推送记录展示云厂商投递回执 未做(记录以 SMTP 受理与错误信息为主)

工程契约与实现说明:MetaRepo spec/contracts/report-subscription.md,以及 DataView / DataTalk 各自 spec/development/report-subscription.md

同目录:分享总览 · 嵌入分享