← 返回
数据分析 中文

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...
通过 SMTP 验证邮箱地址的有效性,无需发送邮件。检查 MX 记录,执行 RCPT TO 验证,并检测全局收件域名。适用于……
psyduckler
数据分析 clawhub v1.0.1 1 版本 99910.3 Key: 无需
★ 0
Stars
📥 1,114
下载
💾 14
安装
1
版本
#latest

概述

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 user@example.com another@domain.com

From stdin

echo "user@example.com" | 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": "user@example.com",
  "domain": "example.com",
  "mx_host": "aspmx.l.google.com",
  "smtp_code": 250,
  "smtp_response": "2.1.5 OK",
  "deliverable": "yes"
}

Deliverability values

ValueMeaning
----------------
yesServer accepted the recipient
noServer rejected the recipient (invalid)
catch-allServer accepts all addresses — cannot confirm inbox exists
unknownCould 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@example.com

# Aggressive (not recommended from residential IPs)
python3 scripts/verify_email.py --delay 0.5 --max-per-domain 50 email@example.com

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

ScenarioRecommended 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

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-03-29 06:52 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 199 📥 65,285
content-creation

AEO Content (Free)

psyduckler
仅使用免费工具创建或更新AEO优化内容,以便被Gemini、ChatGPT、Perplexity等AI助手引用。包含两种模式:创建新内容...
★ 0 📥 1,568
data-analysis

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 166 📥 60,292