邮件安全检测 API
检测域名的邮件防伪造配置:SPF、DMARC、DKIM(常见选择器探测)与 MX 记录,给出评分、等级和中文修复建议
数据来源:公共 DNS(Cloudflare / 阿里)
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
检测 SPF / DMARC / DKIM / MX 配置并评分
GET /api/email/security
请求参数
domain(必填):域名(支持中文域名);也可以直接传邮箱地址,取 @ 后面的部分,示例github.comselector:DKIM 选择器(邮件头 DKIM-Signature 中 s= 的值);不传时依次尝试 default、selector1、google 等常见选择器,示例selector1
返回字段
domain(string):检测的域名(ASCII 形式,中文域名已转为 punycode)score(number):评分 0~100:SPF 最多 45 分 + DMARC 最多 55 分(DKIM 无法可靠探测,不计分)grade(string):等级:A(≥90)/ B(≥75)/ C(≥50)/ D(≥25)/ Fmx(object):MX 记录(收信服务器)mx.found(boolean):是否有可用的 MX 记录(Null MX 不算)mx.nullMx(boolean):是否为 Null MX(RFC 7505,明确声明该域名不收邮件)mx.records(array):MX 记录,按优先级从高到低(数字从小到大),最多 10 条mx.records[].exchange(string):邮件交换服务器域名;Null MX 为 "."mx.records[].priority(number):优先级,数字越小越优先mx.error(string|null):MX 查询出错时的原因(如 DNS 服务器响应超时);正常或没有记录时为 nullspf(object):SPF(发信服务器白名单)检测结果spf.found(boolean):是否有 v=spf1 开头的 TXT 记录spf.record(string|null):SPF 记录原文(多条时为第一条);没有时为 nullspf.all(string|null):结尾的 all 机制:-all / ~all / ?all / +all;没有 all 时为 nullspf.policy(string|null):对未列出服务器的处理:fail 拒绝 / softfail 软拒绝 / neutral 中立 / pass 放行 / redirect 由 redirect 指向的域名决定;没有 SPF 或没有 all 时为 nullspf.lookups(number):需要额外 DNS 查询的机制数(include / a / mx / ptr / exists / redirect,只算本条记录),超过 10 会导致校验失败spf.issues(array):SPF 存在的问题(中文说明),没有问题时为空数组dmarc(object):DMARC(伪造邮件处理策略)检测结果,查询 _dmarc.<域名> 的 TXT 记录dmarc.found(boolean):是否有 v=DMARC1 记录dmarc.record(string|null):DMARC 记录原文;没有时为 nulldmarc.policy(string|null):p= 策略:none 仅监控 / quarantine 隔离 / reject 拒收;没有记录或取值无效时为 nulldmarc.subdomainPolicy(string|null):sp= 子域名策略;未设置时为 null(沿用 p=)dmarc.percent(number|null):pct= 策略生效比例(0~100,未设置为 100);没有记录时为 nulldmarc.reportTo(string|null):rua= 汇总报告接收地址原文(如 mailto:dmarc@example.com);未设置时为 nulldmarc.issues(array):DMARC 存在的问题(中文说明),没有问题时为空数组dkim(object):DKIM(邮件签名公钥)探测结果dkim.found(boolean):是否在尝试的选择器中找到了 DKIM 记录dkim.selectors(array):找到 DKIM 记录的选择器dkim.checked(array):尝试过的选择器(传了 selector 时只有它)dkim.note(string|null):没找到时的说明;找到时为 null