← Back to Skills Marketplace
psyduckler

Email Verifier

by psyduckler · GitHub ↗ · v1.0.1
cross-platform ✓ Security Clean
760
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install email-verifier
Description
Verify email address deliverability via SMTP without sending mail. Checks MX records, performs RCPT TO verification, and detects catch-all domains. Use when...
README (SKILL.md)

Email Verifier

Verify whether email addresses are deliverable by connecting to the recipient's mail server and checking if it accepts the address — without actually sending any mail.

How It Works

  1. MX Lookup — Resolves the domain's mail exchange server
  2. SMTP Handshake — Connects to the MX server on port 25
  3. RCPT TO Check — Asks the server if it would accept mail for the address
  4. Catch-All Detection — Tests a random address to detect catch-all domains

Dependencies

pip3 install dnspython

Usage

Single or multiple emails

python3 scripts/verify_email.py [email protected] [email protected]

From stdin

echo "[email protected]" | python3 scripts/verify_email.py --stdin

From CSV (e.g., a lead list)

python3 scripts/verify_email.py --csv leads.csv --email-column "Contact Email"

Options

  • --helo DOMAIN — HELO domain for SMTP greeting (default: verify.local)
  • --timeout SECONDS — Connection timeout (default: 10)

Output

JSON array to stdout. Each result contains:

{
  "email": "[email protected]",
  "domain": "example.com",
  "mx_host": "aspmx.l.google.com",
  "smtp_code": 250,
  "smtp_response": "2.1.5 OK",
  "deliverable": "yes"
}

Deliverability values

Value Meaning
yes Server accepted the recipient
no Server rejected the recipient (invalid)
catch-all Server accepts all addresses — cannot confirm inbox exists
unknown Could not determine (timeout, block, greylisting)

Rate Limiting

The script includes built-in rate limiting to protect your IP reputation:

# Defaults: 1s between checks, max 20 per domain before 30s pause
python3 scripts/verify_email.py --csv leads.csv --email-column "Contact Email"

# Conservative: slower checks, lower burst limit
python3 scripts/verify_email.py --delay 3 --max-per-domain 10 --burst-pause 60 [email protected]

# Aggressive (not recommended from residential IPs)
python3 scripts/verify_email.py --delay 0.5 --max-per-domain 50 [email protected]

Options

  • --delay SECONDS — Pause between each check (default: 1.0)
  • --max-per-domain N — Max checks to one domain before pausing (default: 20)
  • --burst-pause SECONDS — How long to pause after hitting the per-domain limit (default: 30)

Why rate limiting matters

SMTP verification connects directly to mail servers. Without rate limiting:

  • Your IP gets blacklisted — Mail servers (especially Gmail, Microsoft) flag IPs that make many rapid RCPT TO requests. Once flagged, your IP may be blocked for hours or permanently.
  • Port 25 gets blocked — ISPs monitor outbound port 25 traffic. Unusual volume can trigger automatic blocks.
  • Greylisting increases — Servers that see rapid-fire checks start returning temporary failures, making your results less accurate.
  • It looks like spam reconnaissance — Because that's exactly what spammers do. Legitimate use requires responsible pacing.

Guidelines for agents

Scenario Recommended settings
Quick spot check (1-5 emails) Defaults are fine
Small lead list (10-50 emails) --delay 2 --max-per-domain 15
Larger batch (50-200 emails) --delay 3 --max-per-domain 10 --burst-pause 60
Bulk verification (200+) Use a dedicated service (ZeroBounce, NeverBounce) instead

Rule of thumb: Stay under 50 unique domain checks per day from a residential IP. For repeated checks to the same domain (pattern guessing), stay under 15 per session.

Limitations

  • Catch-all domains accept all addresses; a "yes" doesn't guarantee a real inbox
  • Some servers block SMTP verification (disconnect or timeout) — result will be "unknown"
  • Greylisting temporarily rejects first attempts by design
  • Rate limiting — don't bulk-verify hundreds from one IP; use a dedicated service for large lists
  • Port 25 blocked — some ISPs/networks block outbound port 25; won't work from those environments
  • Residential IPs may get flagged if used heavily — for bulk verification, prefer services like ZeroBounce or NeverBounce
Usage Guidance
This skill appears to do exactly what it says, but take these practical precautions before using it: (1) Running RCPT checks opens many connections to third-party mail servers and can be interpreted as spam reconnaissance — use only on lists you own or have permission to verify. (2) Run from an environment that permits outbound port 25 (some ISPs block it) and consider using a server or VM with appropriate reputation to avoid IP blacklisting. (3) Respect the provided rate-limiting defaults and do not bulk-run large lists from residential IPs; for large volumes prefer a dedicated verification service. (4) Review the included script (verify_email.py) yourself before running; it performs network I/O (smtplib/dns) but contains no hidden remote endpoints or credential exfiltration. (5) Install dnspython from the official PyPI repository (pip3 install dnspython). If you need higher assurance, run the script inside an isolated VM/container and/or ask for a third-party code review.
Capability Analysis
Type: OpenClaw Skill Name: email-verifier Version: 1.0.1 The OpenClaw skill 'email-verifier' is benign. Both the `SKILL.md` documentation and the `scripts/verify_email.py` code align perfectly with the stated purpose of verifying email deliverability via SMTP. The `SKILL.md` provides clear usage instructions and, notably, includes extensive guidance on rate limiting to prevent IP blacklisting, indicating responsible design. The Python script implements this functionality using standard libraries (`smtplib`, `dns.resolver`) and includes the described rate-limiting mechanisms. There is no evidence of data exfiltration, unauthorized command execution, persistence, obfuscation, or prompt injection attempts against the agent.
Capability Assessment
Purpose & Capability
Name/description (SMTP RCPT checks, MX lookup, catch-all detection) match the included script and SKILL.md. The included Python script implements the stated functionality and the only external dependency (dnspython) is consistent with MX lookups.
Instruction Scope
SKILL.md instructions and the script limit actions to DNS resolution, TCP connections to MX hosts on port 25, CSV/stdin reading, and local rate limiting. The instructions do not read unrelated files or environment variables, nor do they exfiltrate data to external endpoints beyond the target mail servers.
Install Mechanism
No install spec is provided (instruction-only), and the only required package is dnspython (pip). No downloads from unknown URLs or archive extraction are present. The script runs directly with system Python.
Credentials
The skill requires no environment variables, credentials, or config paths. Network access to MX servers is expected and proportional to the stated purpose.
Persistence & Privilege
Skill is not forced-always, has no autonomous-privilege escalation indicators, and does not attempt to modify other skills or system-wide settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install email-verifier
  3. After installation, invoke the skill by name or use /email-verifier
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
Re-publish: SMTP email verification with MX lookup, RCPT TO check, catch-all detection.
v1.0.0
Initial release: SMTP email verification with MX lookup, RCPT TO check, catch-all detection.
Metadata
Slug email-verifier
Version 1.0.1
License
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Email Verifier?

Verify email address deliverability via SMTP without sending mail. Checks MX records, performs RCPT TO verification, and detects catch-all domains. Use when... It is an AI Agent Skill for Claude Code / OpenClaw, with 760 downloads so far.

How do I install Email Verifier?

Run "/install email-verifier" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Email Verifier free?

Yes, Email Verifier is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Email Verifier support?

Email Verifier is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Email Verifier?

It is built and maintained by psyduckler (@psyduckler); the current version is v1.0.1.

💬 Comments