SMTP Email Verifier avatar

SMTP Email Verifier

Pricing

$0.01 / 1,000 checked emails

Go to Apify Store
SMTP Email Verifier

SMTP Email Verifier

Check email addresses in bulk with syntax validation, MX records, SMTP RCPT TO mailbox probes, catch-all detection, disposable and role flags, confidence, and recommended actions. No email is sent.

Pricing

$0.01 / 1,000 checked emails

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

8 days ago

Last modified

Share

📬 SMTP email verification for bulk email lists

Use this SMTP email verifier to check email addresses before you import, enrich, or send to a list. It validates syntax, looks up MX records, opens an SMTP conversation, checks the recipient with RCPT TO, and returns a practical decision without sending an email.

  • SMTP email verification for outreach lists that need mailbox-level evidence before upload.
  • smtp email verifier for CRM cleanup, signup review, and scraped contact QA.
  • Bulk email verifier for CSV, pasted, or direct email lists that need syntax, MX, SMTP, and risk decisions in one export.
  • Email list cleaning for teams that want send, suppress, review, and retry buckets before moving contacts into a CRM or outreach tool.
  • Catch-all email checker for domains that accept random recipients and need cautious send recommendations instead of false certainty.

✅ Data returned

Each saved row is one checked email address with fields you can filter, export, or send to another tool:

Field groupWhat you get
Email resultemail, domain, status, verdict, sendable, confidence, qualityScore, and riskLevel
Action fieldsdecision, recommendedDisposition, recommendedAction, and automation flags for send, review, retry, or suppress workflows
Syntax evidenceValidity, syntax errors, and typo suggestions when available
MX evidenceMX status, detected provider, and sorted MX records
SMTP evidenceVerification method, SMTP code, SMTP message, error text when available, and attempt count
Risk flagsCatch-all, disposable, role-based, and free-provider signals
Domain healthSPF, DMARC, and common DKIM selector checks when enabled

The Actor also saves a SUMMARY record with run-level counts and a DOMAIN_SUMMARY record with per-domain counts, provider hints, catch-all counts, and domain-health signals.

▶️ How to run

  1. Add emails in Email addresses, paste copied text in Paste emails, or upload a CSV/TXT file.
  2. Keep the default checks enabled for syntax, MX, SMTP, catch-all, disposable, role-based, typo, and domain-health signals.
  3. Set Run limit when you want to process only part of a larger file or list.
  4. Run the Actor, then open the dataset to review status, confidence, risk flags, and recommended action for each email.

Advanced SMTP settings are available for teams that need a custom MAIL FROM address, SMTP port, timeout, retry count, or per-domain cap. Most first runs can use the defaults.

🧾 Input

You can provide emails in three ways and combine them in one run:

  • Email addresses - one address per row.
  • Paste emails - raw CSV rows, CRM text, comma-separated values, or one address per line.
  • Upload CSV or TXT file - spreadsheet exports or plain text files.

Optional toggles control catch-all detection, disposable-domain checks, role-address checks, typo suggestions, and domain-health checks. The Actor normalizes inputs, removes duplicates, respects the run limit, and can cap checks per domain.

🧪 Output example

{
"email": "admin@example.com",
"domain": "example.com",
"status": "catch_all",
"verdict": "Valid - Catch-all domain",
"sendable": true,
"confidence": 0.72,
"qualityScore": 78,
"riskLevel": "medium",
"decision": "send_monitor",
"recommendedDisposition": "send_with_caution",
"recommendedAction": "Send with caution because the domain accepts all recipients.",
"riskFlags": ["catch_all", "role_based"],
"flags": {
"isDisposable": false,
"isRoleBased": true,
"isFreeProvider": false,
"isCatchAll": true,
"catchAllConfidence": 0.9
},
"syntax": {
"isValid": true,
"errors": [],
"suggestion": null
},
"mx": {
"hasRecords": true,
"provider": "Google Workspace",
"records": [
{
"priority": 10,
"exchange": "aspmx.l.google.com"
}
]
},
"smtp": {
"method": "smtp",
"code": 250,
"message": "2.1.5 OK",
"error": null,
"attempts": 2
},
"domainHealth": {
"spf": true,
"dmarc": true,
"dkim": false,
"dkimSelectorsChecked": ["default", "selector1", "selector2", "google", "k1", "mail"]
},
"failureAnalysis": {
"primaryCause": "catch_all",
"category": "deliverability_risk",
"severity": "medium",
"recoverable": true,
"explanation": "Domain accepts random recipients, so the specific mailbox cannot be confirmed."
},
"automation": {
"sendToCadence": true,
"sendToSuppression": false,
"requiresRetry": false,
"requiresReview": true,
"requiresReplacement": false
}
}

💳 Pricing

This Actor charges one email-verified event for each checked email row that is saved to the dataset.

UnitPrice
1 checked email$0.00001
1,000 checked emails$0.01

There is no actor-start charge. Empty input, duplicate input, unreadable uploaded files, skipped per-domain overages, and runs with no saved email checks are not charged as checked emails.

🔌 Integrations

  • Export checked emails to JSON, CSV, Excel, XML, RSS, or HTML from the Apify dataset.
  • Use the Apify API to run SMTP email verification from your app or enrichment pipeline.
  • Schedule repeat list checks and send finished datasets to webhooks or downstream Apify integrations.
  • Combine results with website email discovery, CRM cleanup, cold outreach QA, or signup review workflows.

❓ FAQ

📮 Does this do a real SMTP check?

Yes. After syntax and MX checks, the Actor connects to the target mail server and performs an SMTP recipient probe with RCPT TO. It then closes the connection without sending a message.

🧱 Why does it check MX records first?

MX records tell the Actor which mail servers receive email for a domain. If a domain has no usable MX records, the Actor can return no_mx without wasting SMTP attempts.

🕵️ Why are some results marked unknown, blocked, or catch_all?

Some mail servers hide mailbox validity, block probing, rate-limit connections, or accept all recipients. The Actor keeps those outcomes separate and gives a recommended action instead of pretending they are confirmed valid mailboxes.

🔑 Do I need Gmail, Outlook, SMTP, or verifier API credentials?

No. You only provide the email addresses you want to check. The Actor does not need inbox credentials, an email provider login, or a third-party verifier API key.

🧪 Can I use this for email list cleaning?

Yes. The output includes suppress, retry, review, send, and send-with-caution decisions so you can clean a list before importing it into a CRM, outreach tool, newsletter tool, or data pipeline.

📡 Why not use an SMTP API?

SMTP is a protocol, not a single public API for checking every mailbox. This Actor wraps syntax, DNS, SMTP, catch-all, and list-quality checks into one Apify run so you can export the results or call them through the Apify API.

🔁 What are SMTP email verifier alternatives?

Alternatives include MX-only email checkers, paid email verification APIs, CRM validation tools, and lead-enrichment platforms. Use this Actor when you already have the email addresses and want credential-free SMTP evidence plus action-ready output.

📝 Changelog

  • 0.1: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré