← Back to all products
$29
Deliverability Checker
Check SPF, DKIM, and DMARC DNS records to diagnose email deliverability issues.
MarkdownPythonExcel
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 10 files
deliverability-checker/
├── LICENSE
├── README.md
├── examples/
│ └── sample_domains.txt
├── free-sample.zip
├── guide/
│ ├── 01_features.md
│ ├── 02_quick-start.md
│ ├── 03_configuration.md
│ └── 04_license.md
├── index.html
└── src/
└── deliverability_checker.py
📖 Documentation Preview README excerpt
Deliverability Checker
Check SPF, DKIM, and DMARC DNS records for any domain and diagnose deliverability issues. Know why your emails land in spam.
Features
- SPF record validation — Parses and validates SPF TXT records, detects too many DNS lookups
- DMARC record checking — Validates policy, alignment, and reporting configuration
- DKIM record lookup — Checks DKIM DNS records with multi-selector support
- MX record resolution — Verifies mail exchange records exist and resolve
- Deliverability scoring — 0-100 score based on authentication completeness
- Batch domain checking — Check multiple domains from a file
- Raw DNS queries — Uses stdlib socket, no dnspython required
- JSON output — Machine-readable reports for integration into pipelines
Requirements
- Python 3.10+
- No external dependencies (stdlib only)
Quick Start
# Check a single domain
python src/deliverability_checker.py example.com
# Verbose output with full record details
python src/deliverability_checker.py example.com --verbose
# Check with a specific DKIM selector
python src/deliverability_checker.py example.com --dkim-selector google
# Check multiple domains from a file
python src/deliverability_checker.py --domains examples/sample_domains.txt --output report.json
Output Format
{
"domain": "example.com",
"score": 85,
"spf": {
"found": true,
"record": "v=spf1 include:_spf.google.com ~all",
"valid": true,
"issues": []
},
"dmarc": {
"found": true,
"policy": "reject",
"alignment": "strict"
},
"dkim": {
"found": true,
"selector": "google",
"key_size": 2048
},
"mx": {
"found": true,
*... continues with setup instructions, usage examples, and more.*
📄 Code Sample .py preview
src/deliverability_checker.py
#!/usr/bin/env python3
"""
Deliverability Checker — Email Arsenal (DataNest)
Checks SPF, DKIM, and DMARC DNS records for a domain and diagnoses
common deliverability issues. Tells you why your emails land in spam.
Usage:
python deliverability_checker.py example.com
python deliverability_checker.py --domains domains.txt --output report.json
python deliverability_checker.py example.com --verbose
Dependencies: Python 3.10+ stdlib only
License: MIT
"""
from __future__ import annotations
import argparse
import json
import logging
import re
import socket
import struct
import sys
from dataclasses import asdict, dataclass, field
from datetime import datetime, timezone
from enum import Enum
from pathlib import Path
from typing import Any
# ---------------------------------------------------------------------------
# Constants
# ---------------------------------------------------------------------------
logger = logging.getLogger("deliverability_checker")
# DNS record types
DNS_TYPE_TXT = 16
DNS_TYPE_MX = 15
DNS_TYPE_A = 1
DNS_TYPE_CNAME = 5
# DNS query timeout
DNS_TIMEOUT = 5 # seconds
# Known SPF mechanisms
SPF_MECHANISMS = {"all", "include", "a", "mx", "ptr", "ip4", "ip6", "exists", "redirect"}
# DMARC policy values
# ... 542 more lines ...