
email-audit
Audits email domain deliverability setup (SPF, DKIM, DMARC, MX records, blacklists, TLS) and generates health score (0-100) with prioritized fix list. Checks bulk sender compliance against Google/Yahoo/Microsoft 2024-2026 requirements. Provides DNS records to add/update. Use when user asks to audit, check, or analyze email deliverability, domain health, or inbox placement.
- Installs
- 75
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/agricidaniel/claude-email --skill email-audit- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads email-audit automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Email Audit Sub-Skill
Purpose
Performs comprehensive email deliverability auditing for a domain. Checks DNS authentication records (SPF, DKIM, DMARC), infrastructure (MX, PTR, TLS), reputation (blacklists), and bulk sender compliance. Generates a health score (0-100) with prioritized fixes.
Input
- Domain name: e.g.,
rankenstein.cloud,example.com - Optional: Email volume (triggers bulk sender compliance checks if 5,000+ emails/day)
Audit Categories
1. SPF Record (Weight: 10%)
What to check:
- SPF record exists at
TXT <domain> - Valid syntax: starts with
v=spf1 - DNS lookup count (max 10, warn at 8+)
- Enforcement level:
-all(pass),~all(softfail),?all(neutral),+all(fail) - No multiple SPF records (causes validation failure)
- Includes are efficient and necessary
Commands:
dig txt <domain> +short | grep "v=spf1"
# or
python scripts/check_deliverability.py <domain> --spf
Scoring:
- Valid + hard fail (
-all): 100 points - Valid + soft fail (
~all): 70 points - Valid + neutral/pass all: 40 points
- Invalid syntax or 10+ lookups: 20 points
- Missing: 0 points
2. DKIM Record (Weight: 15%)
What to check:
- At least one valid DKIM record exists
- Key length: 2048-bit (required minimum per NIST), 1024-bit (legacy, upgrade recommended)
- Common selectors:
google,default,selector1,selector2,k1,mandrill,dkim
Commands:
dig txt google._domainkey.<domain> +short
dig txt default._domainkey.<domain> +short
dig txt selector1._domainkey.<domain> +short
# Check common selectors
Note: DKIM selectors are not discoverable without prior knowledge. Check common ones and ask user if their email provider uses a specific selector.
Scoring:
- 2048-bit key found: 100 points
- 1024-bit key found: 70 points
- Invalid/weak key: 30 points
- Missing: 0 points
3. DMARC Policy (Weight: 15%)
What to check:
- DMARC record exists at
TXT _dmarc.<domain> - Policy level:
p=reject(excellent),p=quarantine(good),p=none(monitoring) - Aggregate reporting (
rua=) tag present - Forensic reporting (
ruf=) tag present (optional) - Alignment mode:
aspf=(SPF) andadkim=(DKIM) - relaxed vs strict - Percentage (
pct=) should be 100 for full enforcement
Commands:
dig txt _dmarc.<domain> +short
Scoring:
p=reject+rua+pct=100: 100 pointsp=quarantine+rua: 80 pointsp=none+rua: 40 pointsp=nonewithout reporting: 20 points- Missing: 0 points
4. MX Records (Weight: 10%)
What to check:
- Valid MX records exist
- MX hosts resolve to IP addresses
- Priority ordering is logical
- Mail provider identification (Google Workspace, Microsoft 365, custom)
Commands:
dig mx <domain> +short
dig a <mx-hostname> +short
Scoring:
- Valid + all hosts resolve + known provider: 100 points
- Valid + all hosts resolve: 80 points
- Valid but some hosts don't resolve: 40 points
- Missing or invalid: 0 points
5. Reverse DNS / PTR (Weight: 5%)
What to check:
- PTR records exist for MX server IPs
- PTR records match forward DNS (hostname matches)
Commands:
dig -x <mx-ip> +short
Scoring:
- All MX IPs have matching PTR: 100 points
- Partial PTR coverage: 50 points
- Missing PTR: 0 points
6. TLS/STARTTLS (Weight: 10%)
What to check:
- STARTTLS support on MX servers (port 25)
- TLS version (1.2+ recommended)
Commands:
openssl s_client -starttls smtp -connect <mx-hostname>:25 -brief
Note: This may require network access. If not available, note as "Unable to verify".
Scoring:
- TLS 1.2+ with STARTTLS: 100 points
- TLS 1.0/1.1 with STARTTLS: 60 points
- No STARTTLS: 0 points
7. Blacklist Check (Weight: 20%)
What to check:
- Domain and MX IP addresses against major blacklists:
- Spamhaus (SBL, XBL, PBL)
- Barracuda
- SORBS
- SpamCop
- URIBL
- Invaluement
Commands:
# 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
Scoring:
- Clean on all lists: 100 points
- Listed on 1 minor list: 50 points
- Listed on 1 major list (Spamhaus, Barracuda): 30 points
- Listed on 2+ major lists: 0 points
Critical: Any listing on major blacklists severely impacts deliverability.
8. Bulk Sender Compliance (Weight: 10%)
Applies to: Domains sending 5,000+ emails/day to Gmail, Yahoo, Microsoft recipients.
Requirements (Google/Yahoo/Microsoft 2024-2026 rules):
- Both SPF AND DKIM must pass (not just one)
- DMARC policy at minimum
p=nonewith alignment - One-click unsubscribe header (RFC 8058:
List-Unsubscribe-Post: One-Click) - Spam complaint rate under 0.3% (target under 0.1%)
- Valid forward and reverse DNS (PTR records)
- Honor unsubscribe within 2 business days
- No impersonation of Gmail/Yahoo/Microsoft from headers
- TLS connection for message transmission
Scoring:
- All 8 requirements met: 100 points
- 6-7 requirements met: 70 points
- 4-5 requirements met: 50 points
- Less than 4 met: 0 points
9. Additional Checks (Weight: 5%)
Bonus points for:
- BIMI record (Brand Indicators for Message Identification) at
TXT default._bimi.<domain> - MTA-STS policy at
https://mta-sts.<domain>/.well-known/mta-sts.txt - TLSRPT record at
TXT _smtp._tls.<domain>(TLS reporting) - Mail-from domain alignment (DKIM/SPF align with From: domain)
Commands:
dig txt default._bimi.<domain> +short
curl https://mta-sts.<domain>/.well-known/mta-sts.txt
dig txt _smtp._tls.<domain> +short
Scoring:
- Each bonus feature: +25 points (max 100)
Health Score Calculation
Formula:
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)
Score Interpretation:
| Score | Rating | Status | Action |
|---|---|---|---|
| 90-100 | Excellent | All critical checks pass, fully compliant | Monitor regularly |
| 75-89 | Good | Minor issues, generally deliverable | Fix medium priority items |
| 60-74 | Fair | Issues that could impact inbox placement | Fix high priority items within 1 week |
| 40-59 | Poor | Significant deliverability risks | Fix critical items immediately |
| 0-39 | Critical | Major issues, emails likely going to spam | Emergency fixes required |
Workflow
Step 1: Gather Domain Information
Ask user for:
- Domain name to audit
- Approximate email volume (to trigger bulk sender checks)
- Known DKIM selector (if not using common ones)
Step 2: Parallel Delegation
Spawn these agents in parallel for faster auditing:
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 (if tools available)
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.
Step 3: Aggregate Results
Collect results from all agents and calculate weighted health score.
Step 4: Generate Prioritized Fix List
Categorize issues by priority:
Critical (Fix Immediately):
- Blacklist listings
- Missing SPF/DKIM/DMARC
- Invalid DNS records
- MX records not resolving
High (Fix Within 1 Week):
- Weak SPF enforcement (
~allinstead of-all) - 1024-bit DKIM keys (upgrade to 2048-bit)
- DMARC policy
p=none(upgrade top=quarantineorp=reject) - Missing PTR records
Medium (Fix Within 1 Month):
- Missing aggregate reporting (
ruatag) - No TLS/STARTTLS support
- SPF approaching 10 DNS lookup limit
- Missing bonus features (BIMI, MTA-STS, TLSRPT)
Step 5: Generate DNS Record Recommendations
Provide exact DNS records to add/update with copy-paste ready values.
Output Format
Structure the audit report as:
- Header:
## Email Deliverability Audit: [domain]with date, health score, rating - Authentication table: SPF/DKIM/DMARC with status, score, raw records
- Infrastructure table: MX/PTR/TLS with status, score, provider detection
- Reputation: Blacklist status across Spamhaus, Barracuda, SORBS, SpamCop
- Bulk Sender Compliance: 8-requirement checklist (Google/Yahoo/Microsoft rules)
- Bonus Features: BIMI, MTA-STS, TLSRPT, Mail-from alignment
- Prioritized Fix List: Critical/High/Medium with impact, fix steps, DNS records
- DNS Records to Add: Copy-paste ready TXT/MX records
- Next Steps: Immediate, this week, this month, monitoring, re-audit
Use score weights from Health Score Calculation section. Use status badges: ✅ PASS, ⚠️ WARN, ❌ FAIL.
Tools
Run python scripts/check_deliverability.py <domain> --json for automated DNS checks.
Manual DNS commands (used in audit categories above):
- 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
Quality Gates
Before delivering audit results:
- All critical checks completed (SPF, DKIM, DMARC, MX, Blacklists)
- Health score calculated with breakdown by category
- Prioritized fix list generated with specific action steps
- DNS records provided in copy-paste ready format
- Score interpretation explained with next steps
Error Handling
If DNS queries fail:
- Note as "Unable to verify" in audit report
- Provide manual check instructions
- Suggest alternative DNS servers (8.8.8.8, 1.1.1.1)
If DKIM selector unknown:
- Check common selectors (google, default, selector1, selector2)
- Ask user for their email provider's DKIM selector
- Note as "DKIM selector not found - requires manual verification"
If no MX records found:
- Critical failure - domain cannot receive email
- Check if domain uses mail forwarding (Cloudflare, etc.)
- Provide setup instructions for email hosting
References
Load on demand:
references/deliverability-rules.md- Scoring thresholds and compliance rulesreferences/mcp-integration.md- Provider-specific setup and DNS configurationreferences/compliance.md- Compliance rules and regulatory requirements
Success Criteria
Audit is successful when:
- Health score accurately reflects deliverability state
- All critical issues identified with clear severity levels
- User receives actionable DNS records to implement
- Fix priority aligns with business impact
- Re-audit timeframe provided based on score
FAQ
What does the email-audit skill do?
Audits email domain deliverability setup (SPF, DKIM, DMARC, MX records, blacklists, TLS) and generates health score (0-100) with prioritized fix list. Checks bulk sender compliance against Google/Yahoo/Microsoft 2024-2026 requirements. Provides DNS records to add/update. Use when user asks to audit, check, or analyze email deliverability, domain health, or inbox placement.
How do I install email-audit?
Run npx skills add https://github.com/agricidaniel/claude-email --skill email-audit in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/email-audit/ (personal) or .claude/skills/email-audit/ (project).
Which AI agents can use email-audit?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is email-audit safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains email-audit?
It is published by agricidaniel in agricidaniel/claude-email. It has 75 recorded installs.
More from agricidaniel/claude-email
email-check
agricidaniel/claude-email
Open the skill to read its SKILL.md instructions.
email-sequence
agricidaniel/claude-email
Designs complete email automation sequences with timing, subject lines, copy, and conditional logic. Supports welcome series, nurture campaigns, re-engagement, abandoned cart, post-purchase, review requests, and custom sequences. Adapts sequence type, cadence, frameworks, and conditional branching to business context. Use when user wants to create an automated email series triggered by subscriber actions or time intervals.
email-write
agricidaniel/claude-email
Compose high-converting emails using proven copy frameworks (PAS, AIDA, BAB, FAB, 4Ps). Generates subject line variants with scores, responsive HTML templates with dark mode support, plain-text fallback, and preheader recommendations. Optimized for cold outreach, newsletters, product launches, promotions, and transactional emails. Adapts to user context from email-profile.md.
email-review
agricidaniel/claude-email
Pre-send email quality review and scoring across 5 dimensions (subject line, copy quality, technical/HTML, deliverability, compliance). Analyzes subject lines, body copy, HTML structure, spam triggers, and CAN-SPAM compliance. Scores 0-100 with detailed recommendations for improvement. Use when user wants to review an email before sending, check email quality, or validate marketing email best practices.
agricidaniel/claude-email
Comprehensive email management and marketing for any business type. Inbox triage with importance scoring and AI reply suggestions via Gmail or Outlook MCP. Email composition using proven copy frameworks (PAS, AIDA, BAB, FAB). Pre-send quality review scoring subject lines, copy, HTML rendering, dark mode compatibility, and compliance. Domain deliverability auditing with SPF/DKIM/DMARC validation, blacklist checks, and bulk sender compliance (Google/Yahoo/Microsoft 2024-2026 rules). Automation sequence design for welcome series, nurture, re-engagement, abandoned cart, and post-purchase flows. Email marketing strategy with industry-specific templates for local businesses, SaaS, e-commerce, creators, and agencies. Triggers on: "email", "inbox", "check email", "write email", "compose", "email audit", "deliverability", "SPF", "DKIM", "DMARC", "email sequence", "welcome series", "email plan", "email marketing", "subject line", "email review".
email-plan
agricidaniel/claude-email
Generate comprehensive email marketing strategy with 90-day implementation roadmap. Analyzes business type (local-business, saas, ecommerce, creator, agency) to deliver industry-specific segmentation plans, automation sequences, content calendars, KPI targets, platform recommendations, and week-by-week rollout schedule. Use when building email program from scratch or restructuring existing strategy.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。