mcpField
E
email-audit

email-audit

github.com/agricidaniel营销与增长13275 次安装29 周前更新
代码仓库

关于 email-audit

email-audit 是用于评估域名邮件送达状况的审计技能,面向需要检查邮件认证、基础设施和声誉的团队。它按权重计算健康分数,并整理优先修复项及可直接使用的 DNS 记录建议。

主要功能

  1. 01检查 SPF、DKIM 和 DMARC
  2. 02验证 MX、PTR 与 TLS
  3. 03查询域名及 IP 黑名单
  4. 04评估批量发件合规要求
  5. 05计算加权健康分并列出修复项
  6. 06提供 DNS 记录修改建议

适用场景

  1. 01上线前检查域名邮件配置
  2. 02诊断邮件进入垃圾箱的风险
  3. 03评估每日发送量较大的合规情况
  4. 04按优先级规划 DNS 修复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agricidaniel/claude-email --skill email-audit

安装后在 Claude Code 中输入/email-audit确认已加载。

详细介绍

邮件审计子技能

目的

对域名进行全面的邮件送达能力审计。检查 DNS 身份验证记录(SPF、DKIM、DMARC)、基础设施(MX、PTR、TLS)、信誉(黑名单)和群发邮件发送者合规性。生成健康评分(0-100),并提供按优先级排序的修复建议。

输入

  • 域名:例如,rankenstein.cloud、example.com
  • 可选:邮件发送量(每天发送量达到 5,000 封或以上时,会触发群发邮件发送者合规性检查)

审计类别

1. SPF 记录(权重:10%)

检查内容:

  • TXT <domain> 中存在 SPF 记录
  • 语法有效:以 v=spf1 开头
  • DNS 查询次数(最多 10 次,达到 8 次或以上时发出警告)
  • 执行级别:-all(通过)、~all(软失败)、?all(中性)、+all(失败)
  • 不存在多条 SPF 记录(否则会导致验证失败)
  • include 配置高效且必要

命令:

dig txt <domain> +short | grep "v=spf1"
# or
python scripts/check_deliverability.py <domain> --spf

评分:

  • 有效 + 硬失败(-all):100 分
  • 有效 + 软失败(~all):70 分
  • 有效 + 中性/全部通过:40 分
  • 语法无效或查询次数达到 10 次或以上:20 分
  • 缺失:0 分
2. DKIM 记录(权重:15%)

检查内容:

  • 至少存在一条有效的 DKIM 记录
  • 密钥长度:2048 位(NIST 要求的最低长度)、1024 位(旧版,建议升级)
  • 常见选择器:google、default、selector1、selector2、k1、mandrill、dkim

命令:

dig txt google._domainkey.<domain> +short
dig txt default._domainkey.<domain> +short
dig txt selector1._domainkey.<domain> +short
# Check common selectors

**注意:**如果事先不知道 DKIM 选择器,就无法发现它们。请检查常见选择器,并询问用户其邮件服务提供商是否使用特定选择器。

评分:

  • 找到 2048 位密钥:100 分
  • 找到 1024 位密钥:70 分
  • 密钥无效或强度不足:30 分
  • 缺失:0 分
3. DMARC 策略(权重:15%)

检查内容:

  • TXT _dmarc.<domain> 中存在 DMARC 记录
  • 策略级别:p=reject(优秀)、p=quarantine(良好)、p=none(监控)
  • 存在汇总报告(rua=)标签
  • 存在取证报告(ruf=)标签(可选)
  • 对齐模式:aspf=(SPF)和 adkim=(DKIM)——宽松或严格
  • 百分比(pct=)应为 100,以完全执行策略

命令:

dig txt _dmarc.<domain> +short

评分:

  • p=reject + rua + pct=100:100 分
  • p=quarantine + rua:80 分
  • p=none + rua:40 分
  • p=none 且无报告:20 分
  • 缺失:0 分
4. MX 记录(权重:10%)

检查内容:

  • 存在有效的 MX 记录
  • MX 主机可解析为 IP 地址
  • 优先级排序合理
  • 邮件服务提供商识别(Google Workspace、Microsoft 365、自定义)

命令:

dig mx <domain> +short
dig a <mx-hostname> +short

评分:

  • 有效 + 所有主机均可解析 + 服务提供商已知:100 分
  • 有效 + 所有主机均可解析:80 分
  • 有效,但部分主机无法解析:40 分
  • 缺失或无效:0 分
5. 反向 DNS / PTR(权重:5%)

检查内容:

  • MX 服务器 IP 存在 PTR 记录
  • PTR 记录与正向 DNS 匹配(主机名一致)

命令:

dig -x <mx-ip> +short

评分:

  • 所有 MX IP 均有匹配的 PTR:100 分
  • 部分 IP 有 PTR:50 分
  • 缺少 PTR:0 分
6. TLS/STARTTLS(权重:10%)

检查内容:

  • MX 服务器(端口 25)支持 STARTTLS
  • TLS 版本(建议使用 1.2+)

命令:

openssl s_client -starttls smtp -connect <mx-hostname>:25 -brief

**注意:**这可能需要网络访问。如果无法访问,请注明“无法验证”。

评分:

  • 使用 TLS 1.2+ 并支持 STARTTLS:100 分
  • 使用 TLS 1.0/1.1 并支持 STARTTLS:60 分
  • 不支持 STARTTLS:0 分
7. 黑名单检查(权重:20%)

检查内容:

  • 在主要黑名单中检查域名和 MX IP 地址:
    • Spamhaus(SBL、XBL、PBL)
    • Barracuda
    • SORBS
    • SpamCop
    • URIBL
    • Invaluement

命令:

# Use checkdmarc library if available
python -c "import checkdmarc; print(checkdmarc.check_domains(['<domain>']))"

# Or manual checks
dig <ip>.zen.spamhaus.org +short
dig <ip>.b.barracudacentral.org +short

评分:

  • 所有名单均未列入:100 分
  • 列入 1 个次要名单:50 分
  • 列入 1 个主要名单(Spamhaus、Barracuda):30 分
  • 列入 2 个或以上主要名单:0 分

**重要:**列入任何主要黑名单都会严重影响邮件送达能力。

8. 批量发件人合规性(权重:10%)

适用对象: 每天向 Gmail、Yahoo、Microsoft 收件人发送 5,000 封以上邮件的域名。

要求(Google/Yahoo/Microsoft 2024-2026 规则):

  1. SPF 和 DKIM 均须通过(不能只通过其中一项)
  2. DMARC 策略至少为 p=none,并满足对齐要求
  3. 一键退订标头(RFC 8058:List-Unsubscribe-Post: One-Click)
  4. 垃圾邮件投诉率低于 0.3%(目标低于 0.1%)
  5. 正向和反向 DNS 有效(PTR 记录)
  6. 在 2 个工作日内处理退订
  7. 标头中不得冒充 Gmail/Yahoo/Microsoft
  8. 通过 TLS 连接传输邮件

评分:

  • 满足全部 8 项要求:100 分
  • 满足 6-7 项要求:70 分
  • 满足 4-5 项要求:50 分
  • 满足项少于 4 项:0 分
9. 其他检查(权重:5%)

加分项:

  • BIMI 记录(邮件品牌标识)位于 TXT default._bimi.<domain>
  • MTA-STS 策略位于 https://mta-sts.<domain>/.well-known/mta-sts.txt
  • TLSRPT 记录位于 TXT _smtp._tls.<domain>(TLS 报告)
  • Mail-from 域名对齐(DKIM/SPF 与 From: 域名对齐)

命令:

dig txt default._bimi.<domain> +short
curl https://mta-sts.<domain>/.well-known/mta-sts.txt
dig txt _smtp._tls.<domain> +short

评分:

  • 每项加分功能:+25 分(最高 100 分)

健康分数计算

公式:

Total Score = (SPF × 0.10) + (DKIM × 0.15) + (DMARC × 0.15) + (MX × 0.10) +
              (PTR × 0.05) + (TLS × 0.10) + (Blacklists × 0.20) +
              (Bulk Compliance × 0.10) + (Extras × 0.05)

分数说明:

分数评级状态操作
90-100优秀所有关键检查均通过,完全合规定期监控
75-89良好存在轻微问题,通常可正常送达修复中优先级项目
60-74一般存在可能影响收件箱投递的问题在 1 周内修复高优先级项目
40-59较差存在严重的送达风险立即修复关键问题
0-39危急存在重大问题,邮件很可能进入垃圾邮件箱必须紧急修复

工作流

步骤 1:收集域名信息

向用户询问:

  • 要审计的域名
  • 大致邮件发送量(用于触发批量发件人检查)
  • 已知的 DKIM 选择器(如果未使用常见选择器)
步骤 2:并行委派

并行启动以下 Agent,以加快审计速度:

Agent 1:email-deliverability

Check DNS authentication records for <domain>:
- SPF record validation
- DKIM record discovery (selectors: google, default, selector1, selector2, k1)
- DMARC policy analysis
- MX record validation
- PTR/reverse DNS check

Return JSON with pass/fail status and raw records.

Agent 2:email-compliance

Check bulk sender compliance for <domain>:
- Verify both SPF and DKIM pass
- Check DMARC alignment
- Note TLS support
- Check for List-Unsubscribe headers (if sample email provided)

Return compliance checklist with met/not met status.

Agent 3:email-reputation(如果有可用工具)

Check reputation for <domain>:
- Blacklist status (Spamhaus, Barracuda, SORBS, SpamCop)
- Historical deliverability issues
- Spam complaint rate (if available)

Return list of blacklist hits and reputation score.
步骤 3:汇总结果

收集所有 Agent 的结果并计算加权健康分数。

步骤 4:生成按优先级排序的修复清单

按优先级对问题分类:

关键(立即修复):

  • 被列入黑名单
  • 缺少 SPF/DKIM/DMARC
  • DNS 记录无效
  • MX 记录无法解析

高(在 1 周内修复):

  • SPF 执行策略较弱(使用 ~all 而非 -all)
  • DKIM 密钥为 1024 位(升级至 2048 位)
  • DMARC 策略为 p=none(升级至 p=quarantine 或 p=reject)
  • 缺少 PTR 记录

中(在 1 个月内修复):

  • 缺少汇总报告(rua 标签)
  • 不支持 TLS/STARTTLS
  • SPF 即将达到 10 次 DNS 查询上限
  • 缺少加分功能(BIMI、MTA-STS、TLSRPT)
步骤 5:生成 DNS 记录建议

提供需要添加或更新的准确 DNS 记录,并给出可直接复制粘贴的值。

输出格式

按以下结构组织审计报告:

  1. 标题:## Email Deliverability Audit: [domain],包含日期、健康分数和评级
  2. 身份验证表:SPF/DKIM/DMARC 的状态、分数和原始记录
  3. 基础设施表:MX/PTR/TLS 的状态、分数和服务提供商检测结果
  4. 信誉:Spamhaus、Barracuda、SORBS、SpamCop 的黑名单状态
  5. 批量发件人合规性:8 项检查清单(Google/Yahoo/Microsoft 规则)
  6. 加分功能:BIMI、MTA-STS、TLSRPT、Mail-from 对齐
  7. 按优先级排序的修复清单:关键/高/中级别,包含影响、修复步骤和 DNS 记录
  8. 待添加的 DNS 记录:可直接复制粘贴的 TXT/MX 记录
  9. 后续步骤:立即、本周、本月、监控、重新审计

使用“健康分数计算”部分中的权重。使用状态徽章:✅ PASS、⚠️ WARN、❌ FAIL。

工具

运行 python scripts/check_deliverability.py <domain> --json 执行自动 DNS 检查。

手动 DNS 命令(用于上述审计类别):

  • SPF:dig txt <domain> +short
  • DKIM:dig txt <selector>._domainkey.<domain> +short
  • DMARC:dig txt _dmarc.<domain> +short
  • MX:dig mx <domain> +short
  • PTR:dig -x <ip> +short
  • TLS:openssl s_client -starttls smtp -connect <mx-hostname>:25 -brief

质量门槛

交付审计结果前:

  1. 完成所有关键检查(SPF、DKIM、DMARC、MX、黑名单)
  2. 计算健康评分,并按类别细分
  3. 生成按优先级排序的修复清单,包含具体操作步骤
  4. 提供 DNS 记录,格式可直接复制粘贴
  5. 说明评分解读及后续步骤

错误处理

如果 DNS 查询失败:

  • 在审计报告中标注“无法验证”
  • 提供手动检查说明
  • 建议使用其他 DNS 服务器(8.8.8.8、1.1.1.1)

如果 DKIM 选择器未知:

  • 检查常见选择器(google、default、selector1、selector2)
  • 询问用户其电子邮件服务提供商的 DKIM 选择器
  • 标注“未找到 DKIM 选择器——需手动验证”

如果未找到 MX 记录:

  • 这是严重故障——域名无法接收电子邮件
  • 检查域名是否使用邮件转发(Cloudflare 等)
  • 提供电子邮件托管的设置说明

参考资料

按需加载:

  • references/deliverability-rules.md - 评分阈值和合规规则
  • references/mcp-integration.md - 特定提供商的设置和 DNS 配置
  • references/compliance.md - 合规规则和监管要求

成功标准

满足以下条件时,审计即为成功:

  • 健康评分准确反映邮件送达状态
  • 明确识别所有关键问题及其严重程度
  • 用户收到可实施的 DNS 记录
  • 修复优先级与业务影响相符
  • 根据评分提供重新审计的时间范围

评论

支持 Markdown