Email Check - verify or mailbox can receive email

We recommend a very useful site for checking any mailing address. The service is easy to use and is called Email Check. It talks to the receiving mail server the same way another server would, and asks whether the user and the mailbox really exist. That way you can find out, before sending anything, whether the address can accept your letter.

Let's review an example for generator.email@gmail.com — an address that looks perfectly valid but was never registered.

Go to the site: Email Check, type in the address you want to check, press the button and read the result.

Start checking for: generator.email@gmail.com

MX records:
gmail-smtp-in.l.google.com
alt1.gmail-smtp-in.l.google.com
alt2.gmail-smtp-in.l.google.com
alt3.gmail-smtp-in.l.google.com
alt4.gmail-smtp-in.l.google.com
Connecting to gmail-smtp-in.l.google.com …
connected to 142.251.127.26
220 mx.google.com ESMTP ffacd0b85a97d-47f86b32283si4884355f8f.407 - gsmtp
EHLO mail.checkeremail.com
250-mx.google.com at your service, [10.0.0.1]
250-SIZE 157286400
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
MAIL FROM:<feedback@checkeremail.com>
250 2.1.0 OK ffacd0b85a97d-47f86b32283si4884355f8f.407 - gsmtp
RCPT TO:<generator.email@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. For more information, go to
550 5.1.1 https://support.google.com/mail/?p=NoSuchUser ffacd0b85a97d-47f86b32283si4884355f8f.407 - gsmtp
QUIT
221 2.0.0 closing connection ffacd0b85a97d-47f86b32283si4884355f8f.407 - gsmtp
Connection close

How to read this

The important line is the answer to RCPT TO — that is where the receiving server decides whether such a mailbox exists:

250
the address is accepted — mail for it will be delivered
550
rejected. The text after the code says why: no such user, mailbox full, domain not served here
4xx
a temporary problem on the receiving side; the answer says nothing about the address itself — worth repeating later

In our case the server replied 550 5.1.1 with a plain explanation: the account does not exist. So a letter sent to this address would bounce back instead of being delivered.

💡
Nothing is actually sent. The session stops right after RCPT TO and closes with QUIT — the message body is never transmitted, so the owner of a working address receives nothing and sees no trace in the inbox.
⚠️
A clean answer is not a guarantee. Large providers deliberately reply 250 to every address to make mass harvesting useless (this is called a catch-all or accept-all setup). So 550 is a reliable «no», while 250 only means «probably yes».

When this is worth doing

Why the answer is not always definite

An SMTP server is not obliged to be honest about which mailboxes it has. Besides the catch-all setup mentioned above, an answer can be distorted by:

greylisting
the first attempt from an unknown sender is rejected on purpose with a temporary code, and only a repeat is accepted
rate limits
too many checks from one address lead to a temporary block, and the answer stops depending on the mailbox at all
no MX record
there is nowhere to connect — such a domain does not receive mail whatever the address in front of the @ is

That is why the check answers the question «can a letter be delivered right now» rather than «does this person exist».

You can run the same check on any address you are curious about at checkeremail.com.

← Back to all docs