Ever sent an email campaign only to realize half your list was full of typos, role accounts, or domains that don't exist? I built smtp-probe to solve exactly that problem — a single Go CLI tool that runs every email deliverability check you need, right from the command line.
The Problem
When you're managing email sending infrastructure, you need to diagnose deliverability issues constantly:
- Is this IP/domain on a blacklist?
- Are the DNS records (SPF, DKIM, DMARC) configured correctly?
- Does this email address actually exist?
- Is this a disposable email or a role account?
Most tools are either proprietary SaaS platforms or cover only one aspect. I wanted everything in one open-source tool.
What smtp-probe Does
DNS Health Scoring
Checks SPF, DKIM, DMARC, PTR, and MX records, then gives you a 0-100 health score:
$ smtp-probe check gmail.com
DNS Score: 95/100 ✓
SPF: pass
DKIM: pass
DMARC: pass
PTR: valid
MX: 5 servers found
SMTP RCPT TO Verification
Verifies email addresses by connecting to the mail server and running the RCPT TO command — with support for binding to specific source IPs:
$ smtp-probe verify user@example.com --bind-ip 1.2.3.4
Status: Valid
SMTP Code: 250
Role-Based Email Detection (NEW in v0.1.3)
Automatically identifies non-personal addresses like admin@, support@, sales@, info@ and classifies them into categories (NOTIFICATION, MARKETING, MEETING, OTHER):
$ smtp-probe verify admin@qq.com
Role: Yes (NOTIFICATION)
Status: Invalid or Unreachable
SMTP Code: 550
Domain Typo Correction (NEW in v0.1.3)
Catches common typos using Levenshtein edit distance across 20+ email providers and 80+ TLDs:
$ smtp-probe verify xxxx@gmial.com
Suggestion: Did you mean xxxx@gmail.com?
Status: Invalid or Unreachable
Error: connection failed
The v0.1.3 fix also catches parked domains with valid MX records (e.g., gmial.com has MX but unreachable SMTP).
RBL Blacklist Scanning
Scans your sending IP against 29 blocklists including Spamhaus, Barracuda, SpamCop, and more:
$ smtp-probe rbl 1.2.3.4
Checking 29 lists...
spamhaus.zen: LISTED ⚠️
barracuda: CLEAN ✓
spamcop: CLEAN ✓
...
Disposable Email Detection
Flags ~74,000 known disposable email domains from 4 upstream sources.
Architecture
Built in Go with Cobra CLI. Key packages:
-
pkg/probe— Core verification pipeline (DNS → SMTP → Role detection → Suggestion → Blacklist) -
pkg/role— Role-based email prefix dictionary with category classification -
pkg/suggestion— Levenshtein-based domain typo engine -
server/— REST HTTP API for programmatic use
Try It
Online demo: probe.uspeedo.online
Install:
bash <(curl -fsSL https://raw.githubusercontent.com/monto-fe/smtp-probe/main/install.sh)
GitHub: github.com/monto-fe/smtp-probe
Stars, issues, and PRs are welcome! We just launched v0.1.3 — would love your feedback on what to build next.
Built with Go, open-sourced under MIT license.
Top comments (0)