Mailbeam
API · SMTP

SMTP Email Verification API

An MX record confirms the domain can receive email. SMTP verification confirms the specific mailbox exists. Mailbeam does both in a single API call.

What Mailbeam checks

Every verification runs 7 checks in parallel and returns a structured result in under 100ms.

Direct SMTP handshake

Mailbeam connects to the target mail server and executes EHLO + MAIL FROM + RCPT TO to test whether the specific mailbox is accepted — without delivering a message.

Multi-hop MX handling

Domains with multiple MX records are handled in priority order. If the primary server is unresponsive, Mailbeam falls back to secondary MX records automatically.

SMTP check result in response

The `smtp_check` boolean in the response tells you specifically whether the SMTP handshake succeeded, independent of the overall `valid` composite result.

Graceful handling of probe-blocking servers

Google, Microsoft, and some enterprise mail servers block direct SMTP probes. When probing is blocked, Mailbeam uses domain-level signals and historical data to estimate deliverability and returns `status: unknown` instead of a false negative.

Distinct from MX-only check

MX validation confirms the domain has mail infrastructure. SMTP verification confirms the individual mailbox (the username before @) exists. Both checks run in every request.

Parallel execution with other checks

The SMTP probe runs in parallel with syntax, MX, disposable, role, and AI scoring. It does not add to the total response time.

How it works

1

MX records fetched

Mailbeam resolves the domain's MX records to identify the responsible mail server. Records are cached for common domains to reduce DNS lookup latency.

2

SMTP connection opened

A TCP connection is opened to the highest-priority MX server on port 25 (or 587 for submission-only servers). Mailbeam sends EHLO to identify itself.

3

RCPT TO command sent

Mailbeam issues MAIL FROM with a probe address and RCPT TO with the target address. The server's response code (250 = accepted, 550 = rejected) determines mailbox existence.

4

Connection closed, result returned

Mailbeam sends QUIT and closes the connection without delivering any email. The RCPT TO response code is included in the verify result as `smtp_check: true/false`.

Integrate in minutes

Python SDKPython
import mailbeam
import asyncio

mb = mailbeam.AsyncClient(api_key=os.environ["MAILBEAM_KEY"])

async def verify_with_smtp_detail(email: str) -> dict:
    result = await mb.verify(email)

    print(f"SMTP check:  {result.smtp_check}")
    print(f"MX check:    {result.mx_check}")
    print(f"Status:      {result.status}")
    print(f"Score:       {result.score}")

    if result.status == "unknown":
        # SMTP probing was blocked (likely Google/Microsoft)
        # Use score as a confidence signal
        if result.score >= 60:
            return {"action": "allow", "reason": "domain_signals_positive"}
        else:
            return {"action": "review", "reason": "low_confidence_unknown"}

    if not result.valid:
        return {"action": "reject", "reason": result.status}

    return {"action": "allow", "reason": "smtp_verified"}

# Usage
result = asyncio.run(verify_with_smtp_detail("user@company.com"))
print(result)

When to use it

B2B outreach list validation

Before sending a cold outreach sequence, SMTP verification confirms that the specific contacts you've identified at a company domain actually have active mailboxes.

Critical transactional email validation

Before sending invoices, contracts, or onboarding emails to new accounts, SMTP-verify the address to avoid a hard bounce on a high-value communication.

Catch-all domain disambiguation

For domains where MX passes but the catch-all flag is set, SMTP probing is still attempted. The combination of smtp_check result and AI score gives the most accurate verdict for corporate addresses.

Hard bounce prevention at scale

For email campaigns where sender reputation is a concern, SMTP verification at import time eliminates the class of hard bounces that come from non-existent mailboxes.

Frequently asked questions

Ready to integrate?

Free tier includes 1,000 verifications/month. No credit card required.