B2B Email Finder & Live SMTP/MX Verifier
Pricing
from $5.00 / 1,000 verified b2b email results
B2B Email Finder & Live SMTP/MX Verifier
Find and verify business email addresses using corporate domain patterns, MX DNS records, and real-time SMTP handshakes without sending actual emails. High-accuracy deliverability scoring.
Pricing
from $5.00 / 1,000 verified b2b email results
Rating
0.0
(0)
Developer
Celal Tokmak
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
B2B Email Finder & Live SMTP/MX Verifier ๐ฏโ๏ธ
Find and verify corporate business email addresses using permutation guessing, DNS MX records, and real-time socket-level SMTP handshakes โ without ever sending actual emails or risking spam complaints.
Built for cold email agencies, B2B sales teams (SDRs/BDRs), lead generation specialists, and growth marketers who demand 99%+ deliverability without paying $100+/mo for legacy SaaS tools like NeverBounce, ZeroBounce, or Hunter.
๐ Key Features
- ๐ง Corporate Pattern Permutations: Generates standard B2B email permutations from first name, last name, and domain:
{first}.{last}@{domain}(Gold standard for Enterprise B2B){first}{last}@{domain}{first}@{domain}{f}{last}@{domain}{f}.{last}@{domain}{first}_{last}@{domain}{last}.{first}@{domain}
- ๐ก๏ธ Intelligent Catch-All Detection: Detects domains configured with catch-all policies that accept every incoming address regardless of existence. Crucial for protecting your domain sender reputation from hidden bounces.
- โก Enterprise Verification Pipeline: 3-stage verification process:
- Syntax Validation: RFC 5322 regex conformance.
- DNS MX Priority & Provider Fingerprinting: Resolves primary MX hosts and detects whether the infrastructure is Microsoft 365, Google Workspace, Mimecast, Proofpoint, Zoho, Proton, etc.
- Live Socket SMTP Handshake: Executes clean RFC
EHLO,MAIL FROM:<check@verifier.net>, andRCPT TO:<email>on port 25. Never sends DATA or message body.
- ๐ Smart Permutation Preservation on Catch-All: When a domain is detected as catch-all, the Actor provides the standard
{first}.{last}email along with all generatedcandidate_patternsso you have complete visibility. - ๐ฆ Single Prospect or Bulk Lists: Verify single contacts or pass thousands of records in bulk arrays.
๐ก๏ธ Why Catch-All Detection is Critical for Cold Email
Many corporate mail servers (such as certain Google Workspace configurations or custom relays) return 250 OK for any random recipient address.
If your email verifier blindly stops at the first 250 OK:
- It may falsely mark an arbitrary pattern (like
celal@) as valid. - When you send cold emails, these messages either silently bounce later or trigger soft bounces, severely damaging your sender score and landing future emails in the spam folder.
Our Intelligent Engine:
- Tests a cryptographically randomized probe address (
verify_{uuid}@{domain}). - If the server accepts the probe, it flags the domain as Catch-All.
- It sets the status to
RISKY (Catch-All - Mailbox cannot be uniquely distinguished). - It sets
best_guess_emailto the industry standard{first}.{last}@{domain}format and outputs all possible addresses incandidate_patterns.
๐ข Enterprise Verification Pipeline Architecture
graph TDA[Input: Name & Domain] --> B[Permutation Generator]B --> C[DNS MX Resolver & Provider Detection]C --> D{MX Records Found?}D -- No --> E[Status: MX_NOT_FOUND]D -- Yes --> F[Catch-All Probe on Port 25]F -- Probe Accepted 250 --> G[Flag: is_catch_all = true]F -- Probe Rejected 550 --> H[Flag: is_catch_all = false]G --> I[Status: RISKY Catch-All]I --> J[Output: best_guess {first}.{last} + candidate_patterns]H --> K[Sequential RCPT TO Tests]K -- 250 OK Found --> L[Status: VALID Verified Deliverable]K -- All 550 Rejected --> M[Status: NO_MATCH_FOUND]
๐ฅ Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
first_name | String | "" | Prospect first name (e.g. Sam). |
last_name | String | "" | Prospect last name (e.g. Altman). |
domain | String | "" | Target company website domain (e.g. openai.com). |
bulk_targets | Array<Object> | [] | List of {first_name, last_name, domain} objects for bulk verification. |
deep_smtp_check | Boolean | true | Connect to target MX servers to check mailbox existence via RCPT TO. |
timeout_seconds | Integer | 10 | Socket timeout for DNS and SMTP checks in seconds. |
verifier_api_url | String | "" | (Optional) Custom SMTP Verifier API endpoint. If omitted, built-in enterprise infrastructure is used automatically. |
verifier_api_key | String | "" | (Optional) API key for custom verifier endpoint. |
๐ฆ Output Dataset Schema Examples
Example 1: Direct Verified Deliverable (VALID)
{"full_name": "Satya Nadella","domain": "microsoft.com","best_guess_email": "satya.nadella@microsoft.com","status": "VALID (Verified Deliverable)","mail_provider": "Microsoft 365","is_catch_all": "false","candidate_patterns": "satya.nadella@microsoft.com, satyanadella@microsoft.com, satya@microsoft.com, snadella@microsoft.com, s.nadella@microsoft.com, satya_nadella@microsoft.com, nadella.satya@microsoft.com","tested_patterns": "satya.nadella@microsoft.com: VALID (250: Mailbox exists and accepts messages)","timestamp": "2026-09-14T13:15:00.000Z"}
Example 2: Catch-All Domain (RISKY)
{"full_name": "Sam Altman","domain": "openai.com","best_guess_email": "sam.altman@openai.com","status": "RISKY (Catch-All - Mailbox cannot be uniquely distinguished)","mail_provider": "Google Workspace","is_catch_all": "true","candidate_patterns": "sam.altman@openai.com, samaltman@openai.com, sam@openai.com, saltman@openai.com, s.altman@openai.com, sam_altman@openai.com, altman.sam@openai.com","tested_patterns": "verify_4cc369ade835@openai.com: Catch-All Detected (Random mailbox accepted 250), sam.altman@openai.com: 250 (Accepted by Catch-All MX)","timestamp": "2026-09-14T13:15:05.000Z"}
๐ฆ Verification Status Reference
VALID (Verified Deliverable): Confirmed existent via SMTP250 OKon a domain with non-catch-all verification.RISKY (Catch-All - Mailbox cannot be uniquely distinguished): Domain accepts all incoming addresses; recommended{first}.{last}is provided alongsidecandidate_patterns.NO_MATCH_FOUND: All tested corporate permutations returned550 Mailbox Not Found.UNVERIFIED (MX Active - No SMTP Service): Domain has healthy MX records, but SMTP port 25 was restricted or unreachable.MX_NOT_FOUND: The domain does not have active MX records or does not exist.
๐งช Local Testing
Run the Actor locally inside the isolated storage sandbox:
$python test_local.py
๐ Deployment to Apify Cloud
Deploy to Apify platform with a single command:
$python deploy.py --yes