DNS & Email Security Posture Checker
Grade any domain's SPF, DKIM, DMARC, CAA and MX in seconds — free, passive, zero-install.
The Bug Circuit DNS & Email Security Posture Checker is a free, single-file command-line tool that tells you — in one command — how well a domain is protected against email spoofing and certificate abuse. Point it at a domain and it queries the live public DNS over DNS-over-HTTPS, inspects the records that matter for deliverability and anti-spoofing (A/AAAA, MX, SPF, DMARC, DKIM and CAA), and prints a clean, graded A-to-F report with the exact records you should publish to fix each gap.
It is deliberately passive and read-only. The tool makes the same ordinary DNS lookups any mail server makes to deliver a message — no host scanning, no port probing, no exploitation, no attack automation. That makes it safe to run against domains you own or are authorised to assess, and easy to drop into a CI pipeline or a periodic health check. Findings are prioritised (failures first, then warnings and informational notes), each with a plain-English explanation and a copy-pasteable fix, so non-specialists and seasoned admins alike can act on the results immediately.
Because it is pure Python 3 standard library — no pip installs, no external packages — it runs anywhere Python does on Windows, macOS and Linux. Output is colourised in your terminal and degrades gracefully to plain text for files and pipelines. A --json mode emits a structured report for dashboards and automation, --selectors lets you probe custom DKIM selectors, and meaningful exit codes let you gate builds on posture. It's a small, sharp, brand-quality utility from Bug Circuit that turns a fiddly manual DNS review into a five-second check.
How to use
- Install Python 3.8 or newer (it ships on most macOS/Linux systems; on Windows grab it from python.org). No other dependencies are needed.
- Download bugcircuit-dnsposture.py from Bug Circuit and open a terminal in the folder where you saved it.
- Run a check:
python bugcircuit-dnsposture.py yourdomain.com(usepython3on macOS/Linux). - Read the graded report — failures are listed first, each with a copy-pasteable DNS record to fix it.
- Publish the suggested SPF/DKIM/DMARC/CAA records at your DNS provider, then re-run to confirm the grade improves.
- For automation, add
--json -o report.json, or probe a custom DKIM selector with--selectors yoursel.
Example commands
python bugcircuit-dnsposture.py example.com
python bugcircuit-dnsposture.py example.com example.org example.net
python bugcircuit-dnsposture.py example.com --selectors s1024,mysel
python bugcircuit-dnsposture.py --resolver google --json -o report.json example.com
python bugcircuit-dnsposture.py --helpFree · MIT licensed · Python 3.8+ · no dependencies · runs on Windows, macOS & Linux. A free tool from Bug Circuit.
Downloads are free. You’ll sign in to a free store account (any email — takes 10 seconds) so you can re-download any time from your account.
Something not right with your order? Email [email protected] — the same team that runs our security audits makes it right.