← ClaudeAtlas

email-template-compatibility-testlisted

Use when a user wants to batch-send local HTML email templates through a web mail-testing form to multiple test inboxes, use filenames as subjects, verify accepted sends, or compare rendering compatibility across email providers.
dengshangli/dsl-skills · ★ 0 · AI & Automation · score 71
Install: claude install-skill dengshangli/dsl-skills
# 邮件模板兼容性测试 ## 概述 将本地 `.html` 邮件模板逐份发送到指定测试邮箱,并用可审计清单区分“服务器已接受”与“收件箱已送达/渲染正常”。默认适配 `https://email-sent-chi.vercel.app/`,也可使用用户指定的同类页面。 **REQUIRED SUB-SKILL:** 使用 `browser:control-in-app-browser` 完成网页操作。 **浏览器选择是固定约束:直接使用应用内置浏览器(IAB)。** 初始化浏览器运行时后,显式调用 `agent.browsers.get("iab")`;不要调用 `getForUrl()`、`getDefault()`,也不要先尝试 Chrome。若 IAB 不可用,停止并报告,不要自行切换到 Chrome。 ## 工作流 1. 盘点文件 - 用 `rg --files -g '*.html' -g '*.htm'` 枚举用户指定目录;默认不递归目录外部。 - 记录稳定排序后的完整文件名、绝对路径和大小。 - 对照页面限制校验扩展名与大小;异常文件先报告,不擅自修改模板。 2. 明确发送口径 - 收件人使用用户明确提供的测试邮箱,并去重。 - 每个模板上传一次,收件人字段同时填写全部测试邮箱。 - 邮件标题使用完整文件名,包括 `.html` 后缀,除非用户另有要求。 - 预计投递数 = 模板数 × 收件人数。 3. 准备浏览器 - 显式选择 IAB:`browser = await agent.browsers.get("iab")`,完整读取其 `documentation()` 后再操作。 - 打开目标页面,读取 DOM 快照,确认上传、收件人、标题和发送控件。 - 文件上传属于用户初始请求明确授权的范围时,无需重复确认。 - 在点击“发送邮件”前,按浏览器确认策略进行一次批次级最终确认,列出模板数、收件人和预计投递数。 4. 逐份上传与发送 - 先监听 `filechooser`,再点击可见的 `label[for="html-file"]` 或页面标注的可见上传区域,然后用绝对路径设置文件。 - 不要优先点击带 `sr-only` 的隐藏 `input[type="file"]`;它可能无法触发文件选择事件。 - 上传后从页面确认显示的文件名,再填写同名标题。 - 点击发送一次,等待按钮恢复并读取明确结果;不要因超时直接重复点击。 - 只有页面出现“邮件服务器已接受 N 封邮件”且 `N` 等于收件人数,才把该模板记为“服务器已接受”。 5. 失败恢复 - IAB 无法捕获文件选择器时,读取页面快照并检查可见上传标签;不要切换到 Chrome。 - IAB 本身不可用或连接失败时,停止并向用户报告当前阻塞。 - 结果不明确时标记“待核实”,先检查页面状态;未证明失败前不得重发,以免重复邮件。 - 明确失败只重试当前模板;保留已成功集合,从未成功项继续。 - CAPTCHA、登录或权限阻塞时按浏览器规则暂停并交接给用户。 6. 验收 - 核对成功集合与原文件清单,确保遗漏为零且没有重复。 - 报告模板数、收件人数、预计投递数、服务器接受数、失败数和待核实数。 - 不把“服务器已接受”等同于“已送达”。若用户要求兼容性结论,再检查各测试邮箱中的送达、布局、字体、图片、链接、深色