SMTP Email Verifier avatar

SMTP Email Verifier

Pricing

from $0.55 / 1,000 email checkeds

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

from $0.55 / 1,000 email checkeds

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

📬 SMTP email verifier for cleaner outreach lists

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

The Actor is built for email list cleaning, CRM hygiene, cold email prep, signup review, and lead data QA. Paste emails from a spreadsheet, CSV export, CRM field, or mixed copied text, then get one saved item per checked address with status, confidence, risk flags, mail server evidence, and a recommended action.

✅ What this bulk email verifier checks

  • Email syntax and malformed input, including missing @, bad domains, and invalid local parts.
  • MX records and detected mail provider, so addresses on domains with no receiving mail server are suppressed early.
  • SMTP mailbox response through EHLO, MAIL FROM, and RCPT TO, then QUIT; no message body is sent.
  • Catch-all domains where servers accept random recipients and mailbox-level SMTP checks are not trustworthy.
  • Disposable email domains that are often temporary or low quality.
  • Role-based addresses such as info@, sales@, support@, admin@, and noreply@.
  • Common domain typo suggestions for addresses that look misspelled.

📊 Data returned

Each saved email check includes the original input, normalized email, domain, status, confidence, risk level, and recommended action. Technical evidence is included when available: syntax errors, MX records, detected provider, SMTP code and message, catch-all result, disposable flag, role-based flag, attempt count, verification method, and timestamp.

Statuses can be valid, invalid, invalid_syntax, no_mx, catch_all, temporary_failure, blocked, timeout, or unknown. That lets you separate addresses to keep, suppress, retry, or review instead of treating every uncertain mailbox as either good or bad.

🧭 When to use it

  • Clean a cold email or newsletter list before outreach.
  • Check imported CRM emails before assigning leads.
  • Filter disposable and role-based addresses from signup exports.
  • Review data quality from scraped contact lists or purchased lead data.
  • Find domains with no MX records before spending time on enrichment.
  • Export verification results to JSON, CSV, Excel, API clients, webhooks, or downstream Apify integrations.

▶️ How to run

  1. Paste email addresses into Email list. One per line is easiest, but comma-separated text and copied CRM/export text also work.
  2. Keep the default checks enabled for a full syntax, MX, disposable, role-based, catch-all, and SMTP pass.
  3. Set Maximum emails if you only want to process part of a larger list.
  4. Run the Actor and 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 users can leave those defaults unchanged.

🧾 Input

The required input is an email list. The Actor normalizes and caps the run using your Maximum emails setting. Optional toggles control catch-all detection, disposable domain detection, role-based detection, typo suggestions, and SMTP timing.

The per-domain limit is useful when a list contains many addresses on the same company domain. It reduces repeated probing of one mail server and helps the run return useful results across more domains.

🧪 Output example

{
"inputIndex": 0,
"sourceEmail": "invalid-email",
"email": "invalid-email",
"normalizedEmail": "invalid-email",
"domain": null,
"status": "invalid_syntax",
"isDeliverable": false,
"confidence": 1,
"riskLevel": "high",
"recommendedAction": "Suppress this address before outreach.",
"riskFlags": ["invalid_syntax"],
"isValidSyntax": false,
"syntaxErrors": ["Missing @ symbol"],
"hasMxRecords": null,
"mxRecords": [],
"mxProvider": null,
"isDisposable": false,
"isRoleBased": false,
"isCatchAll": false,
"catchAllConfidence": null,
"smtpCode": null,
"smtpMessage": null,
"verificationMethod": "syntax",
"attemptCount": 0,
"errorMessage": null,
"suggestion": null,
"checkedAt": "2026-06-01T22:45:20.042Z"
}

💳 Pricing

This Actor charges per email checked. There is no actor-start event.

Apify planPrice per 1,000 emails
FREE$0.90
BRONZE$0.80
SILVER$0.70
GOLD$0.55
PLATINUM$0.45
DIAMOND$0.35

⚠️ Limits and caveats

SMTP verification is a real mailbox-level check, but it is not a guarantee that an inbox exists or will accept future mail. Some large consumer and enterprise providers intentionally block SMTP probing, hide recipient validity, rate-limit connections, or return temporary responses. In those cases, the Actor saves a successful row with blocked, timeout, temporary_failure, catch_all, or unknown and gives a recommended action.

The Actor never sends an email. It stops after the SMTP recipient check. Use the result as a list-cleaning signal, not as permission to contact someone.

❓ FAQ

📮 Does this do a true 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, there is no mailbox server to probe, so the Actor can return no_mx without wasting SMTP attempts.

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

Many mail servers protect recipient privacy or reduce automated probing. Those responses are useful signals, but they are not hard proof of deliverability. The Actor keeps them separate from confirmed invalid syntax, no-MX domains, and successful mailbox checks.

🔑 Do I need email provider credentials?

No. The Actor does not need Gmail, Outlook, SMTP account, or inbox credentials. You only provide the email addresses you want to check.

📝 Changelog

  • 0.0: 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é