← 返回 Skills 市场
psyduckler

Email Verifier

作者 psyduckler · GitHub ↗ · v1.0.1
cross-platform ✓ 安全检测通过
760
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install 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...
使用说明 (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
安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install email-verifier
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /email-verifier 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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.
元数据
Slug email-verifier
版本 1.0.1
许可证
累计安装 0
当前安装数 0
历史版本数 2
常见问题

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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 760 次。

如何安装 Email Verifier?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install email-verifier」即可一键安装,无需额外配置。

Email Verifier 是免费的吗?

是的,Email Verifier 完全免费(开源免费),可自由下载、安装和使用。

Email Verifier 支持哪些平台?

Email Verifier 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Email Verifier?

由 psyduckler(@psyduckler)开发并维护,当前版本 v1.0.1。

💬 留言讨论