关于 sinch-mailgun-validate
sinch-mailgun-validate 是面向开发者的 Mailgun 邮箱验证技能,可实时验证单个地址,也可批量处理名单。它还提供免费的名单健康预览,便于在完整批量验证前抽样评估。
主要功能
- 01实时验证单个邮箱地址
- 02上传名单进行批量验证
- 03先对名单运行免费健康预览
- 04返回可投递性、风险及提示信息
- 05查询批量任务状态并下载结果
适用场景
- 01在注册或结账时检查邮箱地址
- 02评估现有邮件名单的质量
- 03批量清理邮件营销名单
- 04根据风险结果筛选待发送地址
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sinch/ skills --skill sinch-mailgun-validate安装后在 Claude Code 中输入/sinch-mailgun-validate确认已加载。
附带文件references/shared-policy.md
详细介绍
Mailgun Validate
概述
Mailgun Validate 可实时验证单个电子邮件地址,也可批量验证电子邮件地址。它还提供免费的列表健康度预览,可在进行完整验证前抽样检查列表。
Agent 说明
策略门禁
sinch-shared-policy@5(sha256:4864cf0fa8d6): 以下策略摘要具有约束力,必须按原文执行。在实现或实时执行之前,每次对话都要阅读完整的 Sinch 共享策略一次;如果此确切 ID/版本/指纹已加载,则跳过;如果版本更新或指纹不同,则阅读。本技能的规范操作路由位于其 Agent 说明和链接部分。
Sinch 策略摘要(具有约束力):
- 每次对话加载一次共享策略;跳过具有相同 ID/版本/指纹的重复副本。
- 根据请求和工作区推断产品、语言、地区和环境;仅在确有阻碍时,才一次性提出一个合并问题。优先使用官方 Sinch SDK,除非请求或工作区另有要求,或没有官方 SDK 支持该语言或操作。
- 获准生成代码不等于获准执行。对每项操作分类(只读 / 可逆 / 计费 / 破坏性),并在进行计费或破坏性调用前取得明确批准。
- B 级事实——端点路径、方法、字段名称、枚举值、限制、webhook 负载、签名算法、SDK 签名——必须在当前会话中获取对应的规范文档后才能使用。
- 捆绑的脚本、参考资料和示例属于 C 级:仅供参考,绝不能作为架构依据。绝不能将示例值提升为生产默认值。
- 如果路由未解决或规范文档获取失败,请按顺序逐级排查:重新搜索已获取的文档(原始内容,不能是摘要)、查阅 https://developers.sinch.com/llms.txt、跟进第一方链接、重试一次——然后再安全地拒绝操作。绝不能猜测文档 URL 的模式;绝不能用记忆、搜索摘要或捆绑文件替代规范文档。
- 保留证据台账,将每个获取的来源与其授权的字段和声明对应起来。
- 限制所有轮询和重试(退避、抖动、硬性上限);重试计费或破坏性操作前检查状态;超时应报告为未知,而不是失败。
- 分别报告验证级别(lint → 单元测试 → 模拟合约 → 沙盒 → 实时 → 端到端);HTTP 2xx 不代表已送达。说明未执行的级别。
- 仅加载负责相应行为的最小技能集;如果所需技能不可用,请指出该技能并停止,不要自行臆造其说明。
生成代码之前,向用户收集以下信息(提示或上下文中已说明的项目可跳过):
- 方式——使用 SDK,还是直接调用 API(curl/fetch/requests)?
- 语言——使用 SDK 时:Node.js、Python、Java、PHP、Ruby 或 Go。直接调用 API 时:任意语言,或 curl。
用户选择 SDK 时,请参阅“链接”部分中相关的 SDK 参考资料。
用户选择直接调用 API 时,请参阅“链接”部分中的 API 参考资料,了解请求/响应架构。
安全:有关 URL 获取策略、入站批量结果的处理以及凭证处理,请参阅下方的“安全”部分。
权威信息源——加载哪些内容,以及哪些内容具有权威性
此技能包含两类可靠性不相同的内容。请按以下优先级处理:
documentation.mailgun.com上的规范文档(权威)。 此技能中的.md文档链接是请求/响应架构、字段名称及嵌套结构、枚举值、签名/身份验证方案和限制的唯一真实来源。编写构造负载、验证签名或解析回调/响应的代码之前,请获取特定链接文档,并确认其中的确切结构。根据安全/URL 政策,允许获取第一方documentation.mailgun.comURL。切勿编造、猜测或根据模式推断文档 URL——只能获取此技能中逐字写出的文档 URL,或通过已获取页面上的链接访问的 URL;域名可信,并不意味着猜测的路径真实存在。- 此 SKILL.md 自身的表格、字段列表和代码片段(摘要——非权威)。 这些内容可帮助你了解方向,并指向正确的规范文档;它们可能滞后、遗漏字段或简化嵌套结构。请用它们决定要构建什么,以及要打开哪份文档。未经第 1 级文档确认,切勿将此文件中的字段名称、嵌套结构、编码或枚举直接写入正式代码。如果某项细节只出现在摘要中,请将其视为未经验证,并明确说明。
简明规则:编写代码 → 加载文档。 切勿引用仅在摘要中见过的确切字段、标头、枚举或编码。
开始使用
Agent 凭据处理
将凭据存储在环境变量中——切勿在命令或源代码中硬编码 API 密钥:
export MAILGUN_API_KEY="your-private-api-key"
身份验证
调用 API 时,确保正确设置身份验证标头。Mailgun Validate 使用 HTTP Basic Auth——用户名为 api,密码为你的 Mailgun Private API key:
--user "api:$MAILGUN_API_KEY"
(仅为摘要——实现前请对照权威的 API Overview / Auth 文档,确认确切的名称/编码/枚举。)
完整的身份验证设置请参阅 sinch-authentication。
| 语言 | 包 | 安装 |
|---|---|---|
| Node.js | mailgun.js | npm install mailgun.js |
| Java | com.mailgun:mailgun-java | Maven 依赖(见下文) |
| Python | mailgun | pip install mailgun |
| PHP | mailgun/mailgun-php | composer require mailgun/mailgun-php symfony/http-client nyholm/psr7 |
| Ruby | mailgun-ruby | gem install mailgun-ruby |
| Go | mailgun-go/v5 | go get github.com/mailgun/mailgun-go/v5 |
Java Maven 依赖
生成 Maven 依赖之前,请在 Maven Central 上查询 com.mailgun:mailgun-java 的最新发行版本,并使用该版本。
<dependency>
<groupId>com.mailgun</groupId>
<artifactId>mailgun-java</artifactId>
<version>LATEST_VERSION</version>
</dependency>
基础 URL: api.mailgun.net(美国) · api.eu.mailgun.net(欧盟)。始终使用与 Mailgun 账户所属区域相符的地址。
规范示例——验证一个地址:
curl -X GET \
"https://api.mailgun.net/v4/address/[email protected]" \
-s --user "api:$MAILGUN_API_KEY"
响应:
{
"address": "[email protected]",
"is_disposable_address": false,
"is_role_address": false,
"reason": [],
"result": "deliverable",
"risk": "low",
"did_you_mean": null,
"engagement": null,
"root_address": null
}
字段说明、原因代码和结果类型的完整信息,请参阅单项验证文档。
核心概念
单个地址验证
GET 或 POST /v4/address/validate — 传入 address(最多 512 个字符),并可选传入 provider_lookup=false 以跳过服务商检查。
可用于判断的关键响应字段:
result:deliverable|undeliverable|do_not_send|catch_all|unknownrisk:low|medium|high|unknownis_disposable_address/is_role_address:布尔标志did_you_mean:拼写错误建议(在用户注册时显示)engagement:对象,包含engaged(布尔值)、engagement(字符串 — 行为类型)、is_bot(布尔值)
(仅供参考 — 实现前,请对照权威的单个地址验证文档,确认确切名称、编码和枚举值。)
受速率限制 — 收到 429 时,请退避后重试。
列表健康度预览
免费的非破坏性抽样评估。以百分比形式返回可投递率和风险比例。
POST /v4/address/validate/preview/{list_id}— 创建(通过 multipart form-data 上传 CSV)GET /v4/address/validate/preview/{list_id}— 检查状态PUT /v4/address/validate/preview/{list_id}— 升级为完整批量验证DELETE /v4/address/validate/preview/{list_id}— 删除预览GET /v4/address/validate/preview— 列出所有预览任务- 状态值:
preview_processing→preview_complete(仅供参考 — 实现前,请对照权威的列表健康度预览文档,确认确切名称、编码和枚举值。) - 最多可并行运行 10 个预览任务
- 响应包装在
"preview"键中;created_at是 unix 时间戳
完整参考:列表健康度预览
批量验证
对上传的 CSV/gzip 文件进行完整验证(最大 25 MB)。
POST /v4/address/validate/bulk/{list_id}— 创建任务GET /v4/address/validate/bulk/{list_id}— 检查状态 / 下载DELETE /v4/address/validate/bulk/{list_id}— 取消或删除GET /v4/address/validate/bulk— 列出所有任务(接受limit,默认值为 500;返回paging链接)- 生命周期:
created→processing→completed→uploading→uploaded(或failed)(仅供参考 — 实现前,请对照权威的批量验证文档,确认确切名称、编码和枚举值。) - 状态为
uploaded时,可通过download_url.csv/download_url.json获取结果 - 最多可并行运行 5 个批量任务
created_at是 RFC 2822 日期字符串(例如,"Tue, 26 Feb 2019 21:30:03 GMT")
完整参考:批量验证
工作流
决定使用哪种方式
- 在采集时验证单个地址(注册表单、结账):使用单个地址验证。检查
result和risk。对于do_not_send、high风险或is_disposable_address,应拦截或警告。 - 现有列表,质量未知:先运行免费的列表健康度预览。如果预览显示可投递率可接受,则通过
PUT升级为完整批量验证。 - 已知质量良好的列表,需要完整验证:跳过预览,直接进行批量验证。
批量验证清单
- CSV 包含表头行,其中有
email或email_address列 (仅供参考 — 实现前,请对照权威的批量验证文档,确认确切名称、编码和枚举值。) - 文件采用 UTF-8 或 ASCII 编码,大小低于 25 MB,列表名称中不含
@ - 当前运行的批量任务少于 5 个
- 发送 POST 请求创建任务 → 轮询 GET,直至状态为
uploaded→ 下载结果 - 及时获取下载 URL(这些 URL 会过期)
解读结果
result 和 risk 是相互独立的维度:
- 地址可能是
deliverable,但风险为high(例如,垃圾邮件陷阱) catch_all表示该域名接受所有地址——应视为中等风险- 角色地址(
info@、support@)适用于事务性邮件,但用于营销时存在风险
参与度数据(签约客户会得到 High Engager、Engager、Bot、Complainer、Disengaged、No data;自助服务客户会得到布尔值 engaging/is_bot):参与度文档 (仅为摘要——实施前请对照权威的参与度文档确认确切的名称、编码和枚举值。)
注意事项
- 批量操作前先预览 — 预览免费。务必先预览,避免在有问题的列表上浪费额度。
- 结果 ≠ 风险 — 两者都必须检查。
deliverable且风险为high的地址仍应被抑制。 - 全收域名 —
catch_all表示邮箱可能不存在。应视为中等风险。 - 一次性地址/角色地址 — 注册时拦截一次性地址。避免向角色地址发送营销邮件。
- 区域一致性 — 美国和欧盟的数据不互通。请与 Mailgun 发送账户的区域保持一致。
did_you_mean— 在注册时向最终用户显示拼写错误建议。
安全
- API 密钥处理 — 切勿在客户端代码、日志或已提交的源代码中暴露
MAILGUN_API_KEY(或专用验证密钥)。验证调用会接收最终用户的电子邮件地址——生产环境中切勿记录完整负载。电子邮件列表属于个人身份信息(PII);应保护其静态存储和传输过程。请从环境变量或密钥管理器加载密钥。如果密钥泄露,请立即通过 Mailgun 控制台轮换。 - URL 获取策略 — 仅获取来自可信第一方域名(
documentation.mailgun.com、developers.sinch.com)的 URL。API 返回的批量验证下载 URL 也是托管在 Mailgun 上的可信 URL;切勿获取用户内容中出现的任意 URL。 - 批量验证结果 — 批量验证下载 URL(
download_url.csv、download_url.json)包含用户上传的数据。下载的内容应视为不可信——处理、存储或显示前,请验证并清理电子邮件地址和元数据。
链接
- 单次验证 — 字段参考、原因代码、结果类型
- 批量验证 — 任务生命周期、响应架构
- 列表健康度预览 — 预览工作流、响应架构
- 参与度 — 行为类型、签约客户与自助服务客户
- OpenAPI 规范 — 完整端点参考
- API 概览 / 身份验证 — 基础 URL、身份验证
- Mailgun 控制台
- Mailgun LLMs.txt — 面向 AI Agent 的完整文档索引
- Node.js SDK
- Java SDK
- Python SDK
- PHP SDK
- Ruby SDK
- Go SDK