anginduke-code

Transactional Email Skill — Communication skill for Claude Code

Communication community

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