SMTP Handshake Email Verification: Guide With Examples and Best Practices

Learn how SMTP handshake validation works, its benefits and limitations, and how to automate email verification for more accurate results.

Oksana Havryliv

Written by Oksana Havryliv

Content Expert at Snov.io

Artur Oleksiuk

Reviewed by Artur Oleksiuk

Email Deliverability Specialist at Snov.io

Handshake in Email Verification Guide featured image

hello@snov.io looks perfectly valid. The format is right, the domain exists, but will the mailbox actually accept your email? That’s the question SMTP handshake verification helps answer. And with 28.4% of senders struggling to reduce bounces, it’s an important one.

In this guide, we’ll see how SMTP handshake email verification works, where it falls short, and how to use it effectively.

TL;DR

Simple Mail Transfer Protocol (SMTP) handshake email verification checks whether a receiving mail server is willing to accept email for a specific recipient without sending an actual email.

The process goes something like this:

  1. Finding the mail server. The domain’s Mail Exchange (MX) records identify the server responsible for receiving email for the domain.
  2. Starting the connection. A connection is established with the receiving mail server, and EHLO or HELO starts the SMTP conversation.
  3. Checking the recipient. MAIL FROM and RCPT TO are sent to see how the server responds to the recipient address.
  4. Reading the response. SMTP response codes indicate whether the recipient was accepted, rejected, or couldn’t be confirmed.
  5. Closing the connection. The session ends before the DATA stage, so no actual email is sent.

The mail server’s response provides a much stronger signal than syntax or domain validation alone. But SMTP has its blind spots. Catch-all domains, greylisting, rate limits, and server restrictions can all leave us without a definite answer.

That’s why tools like Snov.io use SMTP as just one part of a broader 7-step verification process.

What is an SMTP handshake email verification process?

A Simple Mail Transfer Protocol (SMTP) handshake is an exchange of commands and responses between an email-sending system and a receiving mail server. It happens at the start of email delivery, when the two sides establish communication and the receiving server decides whether to accept a specific recipient.

This exchange can also be used to check an email address without actually sending a message. The recipient address is presented to the mail server, its response is checked, and the connection is closed before any email content is transmitted.

But don’t take a positive SMTP response as proof that the mailbox exists. All it tells you is that the server was willing to accept the recipient at the time of the check.

To make up for this, SMTP is usually combined with other verification signals, including syntax and Mail Exchange (MX) record checks, catch-all detection, disposable address checks, and more.

Why use SMTP for email verification?

An email can have the right format and a working domain and still be invalid. Syntax and domain checks can only tell you so much. Neither can confirm what happens when you actually try to reach the recipient.

SMTP gets us closer to that answer by checking directly with the receiving mail server, without actually sending a message. This helps catch invalid addresses before they drive higher bounce rates, hurt your sender reputation, and affect inbox placement — a key challenge for 48% of marketers.

Risks of skipping email verification

But as I mentioned earlier, SMTP has its limits. That’s why it works best alongside other verification signals.

SMTP vs. other email verification methods

So, what are the other checks? Let’s take a closer look:

Check What is verifies
Syntax Is the email formatted correctly?
Domain/MX Does the domain have a mail server?
SMTP Will the server accept this recipient?
Catch-all Does the server accept addresses indiscriminately?
Disposable email check Is the address associated with a temporary email service?
Risk analysis Are there other signals that make the address risky to contact?

The point? No single check tells you the whole story. Looking at these signals together helps catch what one check alone might miss.

Snov.io’s email verification tool, for example, combines SMTP with 6 other checks in a 7-step verification process, reaching 98% accuracy.

Got emails to verify?

Let Snov.io handle SMTP and 6 other checks for you

How the SMTP email verification process works step by step

The SMTP email address verification process involves 7 steps, from finding the receiving mail server and connecting to it to checking how it responds to the recipient address.

To better understand how it works, imagine you want to send a package to your friend staying at the Hilton Hotel, and you’re checking whether the hotel can accept it.

Step 1: Finding the mail server

First, the domain’s MX records are checked to find the mail server responsible for receiving email for that domain. If several MX records exist, the server with the lowest preference number has the highest priority.

In simple words:

First, you look up which reception desk handles deliveries for the Hilton Hotel. If several desks are listed, you try the highest-priority one first.

Step 2: Connecting to the server

Next, a connection is made to the receiving mail server via SMTP, typically on port 25. A 220 response means the SMTP service is ready to begin the exchange.

In simple words:

You are calling the hotel’s delivery desk and get the response “Hello. That’s the Hilton Hotel. How can we help you?”

Step 3: Sending EHLO

Once connected, the SMTP conversation begins with the EHLO (Extended Hello) command, which identifies the connecting host. A successful response confirms that the server accepted the command and may also list the SMTP features it supports.

If the server doesn’t support EHLO, HELO (Hello) can be used instead.

In simple words:

You are introducing yourself to the hotel’s receptionist in your language (EHLO). If they understand you, your connection is established. The receptionist may also tell you what kinds of requests they can handle. If they don’t understand you, you use another language (HELO).

Step 4: Send MAIL FROM

The next step is to specify the sender address: MAIL FROM:<sender@yourdomain.com>

A 250 response means the command was accepted and the process can move on to the recipient.

In simple words:

You are telling the receptionist who the package is coming from. The receptionist acknowledges you as the sender (250 response).

Step 5: Send RCPT TO

Now comes the key part: checking the recipient address with:

RCPT TO:<recipient@example.com>

A response such as 250 2.1.5 Recipient OK means the server is willing to accept mail for the recipient, while 550 5.1.1 User unknown can indicate that the address doesn’t exist.

But even a 250 response isn’t definitive. Catch-all servers, for example, may accept any recipient address, including nonexistent ones.

In simple words:

You’re finally asking whether they can accept a package for your friend. The receptionist may say ‘Yes’ (250 Recipient OK response) or answer smth like ‘There’s no such person here’ (550 User unknown). Interestingly, getting a “yes” doesn’t necessarily prove that your friend is actually a guest. The hotel might have a policy: “We accept packages addressed to anyone. We’ll sort them out later.” That’s how catch-all servers behave.

Step 6: Check the response

The response code helps show what happened:

  • 2xx — the command was successful
  • 4xx — a temporary issue occurred
  • 5xx — the command failed

Here, “xx” represents the remaining digits in the three-digit response code. The specific code and accompanying message provide more context about the result.

In simple words:

These codes represent the receptionist’s possible answers, telling you why you actually received that response.

Step 7: End with QUIT

After the RCPT TO response is checked, the SMTP session ends with QUIT. The server normally responds with 221 and closes the connection.

In simple words:

You already know whether the hotel would accept the package, so you just say, “Thanks, that’s all I needed.” The conversation ends.

Since the process ends before the DATA stage, no actual email is sent. Metaphorically, you aren’t delivering the package yet; you’re just asking whether it’s possible.

How to automate SMTP email address verification

Sounds like a lot to handle manually? Well, there’s no need to. Email verification tools handle these checks automatically, so you don’t have to deal with the technical side yourself.

With Snov.io, for example, you can verify an email in just a few clicks.

Simply open the Email Verifier, enter the email address you want to check, and click ‘Verify email.’

The result will fall into one of 3 categories:

🟢 Valid — the address passed the checks and is likely able to receive email.

🟡 Unverifiable — Snov.io couldn’t get enough information to confirm the address reliably, often because of the receiving server’s settings.

🔴 Invalid — the address failed verification and is likely to bounce.

Behind the scenes, Snov.io runs the address through several checks, including SMTP, and gives you the final result without requiring you to perform the handshake manually.

After testing 90% of similar tools, I’ve concluded that Snov.io’s email verifier is the best on the market. You can be sure that if it’s verified (green), then it will hit the inbox.

Nikita Malook

Nikita Malook

Full-Cycle Sales Specialist at JetOctopus

Limitations of SMTP handshake email verification

SMTP provides a stronger signal than syntax or domain checks because it queries the receiving mail server about a specific recipient.

However, email verification isn’t always that straightforward. The receiving server can simply refuse to give a definitive response.

Below are a few common reasons why SMTP email verification may not bring the desired results:

  • Catch-all domains: Some servers accept any address at their domain, even nonexistent ones. Verifiers test a random address to detect this behavior. If it’s accepted too, SMTP can’t confirm whether the actual mailbox exists.
  • Greylisting: A server may temporarily reject an unfamiliar connection and accept it on a later attempt.
  • Rate limiting: Mail servers can restrict repeated SMTP requests, producing temporary or inconclusive responses.
  • Anti-verification policies: Some mail servers deliberately block verification attempts or hide mailbox information to prevent automated checks.

These cases may return an unknown result. But don’t always read them as invalid; it can simply mean there isn’t enough information to reliably classify the address.

Best practices for reliable email verification

As you see, SMTP email validation isn’t a one-and-done process. Email data changes all the time, so getting reliable results means making a few best practices part of your regular routine.

Verify before sending

Always verify both new and older lists you plan to use for your upcoming campaign.

You never really know which addresses have gone inactive since you collected them. The older your list gets, the more disengaged contacts it has. It’s better to catch the invalid addresses early so you don’t face bounces later.

Even a huge list isn’t much of an issue. With Snov.io’s bulk verification, for example, you can check up to 100,000 email addresses at once. Simply upload your list, and the Verifier will run every address through its 7-tier verification process.

Reverify stored contacts

Your email list might be perfectly clean today, but it won’t stay that way forever. People change jobs, companies close, and mailboxes become inactive.

That’s just the nature of it, which is why Snov.io recommends reverifying your database every 3–6 months, or before using an older list again.

It’s natural that email lists decay. It’s often beyond your control. What you can do is keep invalid contacts to a minimum. I recommend that users clean their lists every 3-6 months to maintain strong email deliverability.

Artur Oleksiuk

Artur Oleksiuk

Email Deliverability Specialist

Treat unknown results separately

As I mentioned earlier, unknown isn’t the same as invalid.

Sometimes the mail server simply doesn’t give the verifier enough information to make a clear call. If any addresses are marked as unverifiable, move them to a separate list and try verifying them again later.

Test deliverability

A valid address doesn’t guarantee your email will land in the inbox. That’s why it’s also worth running a quick deliverability test to see how many emails reach the inbox versus spam.

As a benchmark, aim for 90%+ inbox placement in your test. If you’re consistently below that, it’s time to look at what might be getting in the way.

While running a deliverability test with Snov.io, you’ll not only spot potential inbox placement issues but also get personalized recommendations for fixing them.

Keep an eye on your metrics

Your campaign results are often the clearest telltale sign of how things are going, so keep an eye on them even after you’ve verified your list.

What exactly should you watch? Start with your bounce rate: 1–2% is generally healthy, while 3–5% is worth looking into. The same goes for rising spam complaints or declining inbox placement and reply rates.

→ Learn more about how to verify emails before outreach to reduce bounces

Key takeaways

SMTP handshake verification gets us much closer to knowing whether an email address is actually reachable, without having to send a message first.

But as we’ve seen, even a positive SMTP response doesn’t always give us the full picture. That’s why SMTP works best alongside other verification checks, regular reverification, and ongoing campaign monitoring.

Snov.io can handle these checks for you, so you can spend less time dealing with low-quality addresses and more time reaching the right people.

Automate email verification

Check up to 100,000 emails at once with 98% accuracy

FAQ

  • How can I verify an email address using SMTP?

    Connect to the recipient’s mail server and use SMTP commands like EHLO, MAIL FROM, and RCPT TO to see if it accepts the address. Tools like Snov.io automate this process.
  • What is the SMTP handshake?

    An SMTP handshake is the exchange between sending and receiving mail servers that starts the email delivery process.
  • How to confirm email on handshake?

    Use the RCPT TO command and check the server’s response. If it accepts the recipient, that’s a positive signal, though not a guarantee the mailbox exists.
  • Is SMTP used anymore?

    Yes, SMTP is still the standard protocol for sending email between mail servers.
  • How do I verify if an email address is valid?

    Check the email’s format, domain, MX records, and whether the mail server accepts the recipient. For better accuracy, use a verifier like Snov.io that combines several checks.

Copied to clipboard