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. There is 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.