用途
该技能用于在 Mailtrap 中添加并验证自己控制的发送域名。资料明确指出:在正式(live)发送前,必须先添加并验证一个你控制的域名。Mailtrap 会在界面中展示该域名所需的全部 DNS 记录,应当按给出的整套记录完整添加,不要只挑选其中一部分。DNS 验证通过后,如系统要求,需完成合规(compliance)步骤。
子域名与根域名的选择
应添加与 From 地址中实际使用的主机名完全一致的域名。如果从 notifications.mycompany.com 发送,就应把该子域名添加为发送域名,而不是只添加 mycompany.com,除非确实从根域名发送。
使用场景
适用于以下情况:设置新的发送域名、验证卡住、合规相关问题;以及在 Cloudflare、AWS、Google、Namecheap、GoDaddy、DigitalOcean 等 DNS 服务商处配置 DNS 时。不适用于:不使用自定义域名的纯沙箱(Sandbox)测试。
授权
资料中列出的 Sending Domains API 调用需要 Authorization: Bearer $MAILTRAP_API_TOKEN,并在路径中包含 $MAILTRAP_ACCOUNT_ID。Token 的作用域、存储方式,以及通过 GET https://mailtrap.io/api/accounts 解析 $MAILTRAP_ACCOUNT_ID 的方法,在 authorizing-api-requests 技能中说明。
自动化设置(API 与 DNS 服务商)
在编写脚本或进行 AI 辅助自动化时,建议采用此路径:
- 通过 API 获取 DNS 记录与状态:
GET https://mailtrap.io/api/accounts/$MAILTRAP_ACCOUNT_ID/sending_domains— 列出域名GET https://mailtrap.io/api/accounts/$MAILTRAP_ACCOUNT_ID/sending_domains/{sending_domain_id}— 返回 dns_records(每项包含 type、name、value 和验证状态)以及 dns_verified。发布 DNS 后轮询该接口。
- 通过 API 创建域名:在需要以编程方式开通域名时,向
POST https://mailtrap.io/api/accounts/$MAILTRAP_ACCOUNT_ID/sending_domains发送 domain_name。 - 以编程方式发布 DNS:使用 DNS 主机自身的 API(例如 Cloudflare API、AWS Route 53、Google Cloud DNS)或 IaC 创建返回的记录;记录名称与值必须与 API 响应完全一致。
- 人工回退方式:Sending Domains > Add domain > 将值复制到注册商界面 > 在无法使用 API 自动化时点击 Verify。
工作流程(概要)
- 进入 Sending Domains > Add domain,输入域名。
- 从界面或 Sending Domains API 获取所需记录,在 DNS 主机上按显示内容(名称、类型、值)完整创建全部记录。
- 等待 DNS 传播。若验证一直处于 pending,先用 dig、nslookup 或在线 DNS 查询工具确认每条记录已公开可见,再重新点击 Verify。
- 在出现提示时完成合规流程。
DNS 服务商指南
Mailtrap 为常见服务商提供了点击路径指南,可按用户的 DNS 主机打开对应页面,并结合实时界面中的记录一起操作:Cloudflare、AWS Route 53、Google Cloud DNS、Squarespace(在适用处包含原 Google Domains 过渡说明)、GoDaddy、Namecheap、DigitalOcean。若服务商不在列表中,规则相同:将 Mailtrap 中的每条记录复制到为 From 域名提供服务的 DNS 区域中。
重要 DNS 注意事项(代理 DNS)
如果 DNS 服务商对记录做了代理(如 Cloudflare 的橙色云朵,或其他服务商类似的 CDN/代理模式),除非 Mailtrap 文档明确允许代理,验证相关记录必须为 DNS-only(灰色云朵 / 非代理)——被代理的 CNAME 等通常会导致 SPF/DKIM 验证失败。同样的限制也适用于任何在 DNS 前加代理的主机。