Transactional Email Skill — Communication skill for Claude Code
Claude Code skill: diagnose why your email fails (SPF, DKIM, DMARC, MX, Spamhaus) and unify sending across Brevo, Resend and SMTP.
How to install Transactional Email Skill
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open anginduke-code/transactional-email-skill and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Transactional Email Skill does
Claude Code skill: diagnose why your email fails (SPF, DKIM, DMARC, MX, Spamhaus) and unify sending across Brevo, Resend and SMTP.
Alternatives in Communication
- Open SaaS — A 100% free modern JS SaaS boilerplate (React, NodeJS, Prisma) 14.1k ★
- Pestle Analysis — PESTLE analysis across Political, Economic, Social, Tech, Legal, Environmental 7.8k ★
- Claude Code Remote — Control Claude Code remotely via email 1.2k ★
README
transactional-email
A [Claude Code](https://claude.com/claude-code) skill for transactional email: find out why your mail is failing, then wire it up so it stops failing.
$ python scripts/diagnose.py example.com --sending-ip 203.0.113.10
========================================================================
email diagnosis: example.com
========================================================================
[!!] CRITICAL Spamhaus DBL: LISTED (127.0.1.2)
Mail with this sending domain is refused regardless of provider — including,
in practice, by your own forwarder. Changing provider does not help.
fix: See references/blocklists.md. Fix the underlying causes first, then request
removal from a non-VPN connection.
[! ] HIGH No MX record — the domain cannot receive mail
Replies bounce, and role addresses do not exist. Blocklist removal requests are
verified by emailing postmaster@ or abuse@, so a listing cannot be appealed
without this.
fix: Add MX records. Free options: ImprovMX or Cloudflare Email Routing.
[~ ] MEDIUM Sending IP 203.0.113.10 on Spamhaus ZEN (127.0.0.11)
PBL — should not send mail directly
fix: PBL on a cloud VM is normal and expected — relay through a provider.
[ok] OK SPF present
v=spf1 include:spf.provider.com ~all
------------------------------------------------------------------------
2 blocking issue(s), 10 total check(s)
------------------------------------------------------------------------
Exit code is `1` when anything blocking is found, so it drops into CI or a cron check unchanged.
Why this one
There are several SPF/DKIM/DMARC auditing skills. This one differs in four ways that came out of actually getting a domain unblocked:
- Blocklist lookups go through the system resolver, not DNS-over-HTTPS. Spamhaus refuses
queries arriving from Google and Cloudflare public DNS and answers
127.255.255.252–254. A checker that resolves
Related Skills
Emailwarm
Claude skill for email warmup: warm a new sending domain so mail stops landing in spam. Audits SPF/DKIM/DMARC,
Email Campaigns Claude
Beautiful HTML email campaigns with Resend and Claude Code.
Clean List
Validate an email list before sending (deliverability hygiene)
Meeting Scheduler
Handles end-to-end meeting scheduling using the Superhuman Mail MCP server — from finding available times to s
Superhuman Mail
Use Superhuman Mail MCP for email and calendar workflows such as searching inboxes, reading threads, drafting
Notify Nt
Completion ping — desktop notification + optional ntfy.sh phone push. Best-effort; a failed ping never fails t
Related Agents
Spgr Agent Async Infrastructure
Owns the patterns and standards for background jobs, webhook delivery, and transactional email. Use when a sto
Campaign Email
Sends campaign emails via Klaviyo, Resend, or Postmark. For: campaign: :email-send, campaign.
Luca
Creates invoices, quotations, or receipts. Generates JSON, produces PDF, and drafts professional email for sen