SMTP Email Verifier
Pricing
from $0.55 / 1,000 email checkeds
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é
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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, andRCPT TO, thenQUIT; 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@, andnoreply@. - 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
- Paste email addresses into Email list. One per line is easiest, but comma-separated text and copied CRM/export text also work.
- Keep the default checks enabled for a full syntax, MX, disposable, role-based, catch-all, and SMTP pass.
- Set Maximum emails if you only want to process part of a larger list.
- 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 plan | Price 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
- Website Emails Scraper ↗ - Find public contact emails from websites before you verify deliverability.
- Gmail Username Checker ↗ - Check Gmail username availability for new account ideas.
- LinkedIn Company People Scraper ↗ - Export LinkedIn company people for prospect research and CRM prep.
- LinkedIn Company Scraper ↗ - Pull public company profile facts, websites, industries, and size data from LinkedIn.
- Business Address Scraper ↗ - Find website-published business addresses with source evidence.
Made with ❤️ by Maxime Dupré