Pinging an email box is a way to see if an email address is valid or not. Learn how it's done.
This article gets into the technical meat of how to ping email boxes. It's target audience assumes a basic level of computer and networking understanding.
The tools described in this article are available in Microsoft Windows. Equivalent tools are available in most other operating systems.
For anyone who knows the basics of computer networking, PING is an essential tool for diagnosing connection problems.
Email address box "pinging" works in a similar way to standard network "ping" in that there's a beginning machine (e.g. your desktop or server) and an end machine (e.g. the mail server) but that's where the similarity ends. Pinging email boxes is different from regular network pinging in almost every way other than there are 2 computers having a conversation.
Advantages of Email Box Pinging
- In many cases, it is possible to work out if an email address is valid or not.
Disadvantages of Pinging an Email Address
- In some cases, will not be effective at conclusively determining is a mailbox exists or not.
- Difficult to do from a technical perspective.
High Level Description of The Ping Process
Before we get into a concrete example of how this is done, let's describe at a high level the sequence of steps required. It will be helpful to use an example email address to help step us through the stages. Let's use the email address below:
This will be our example address used throughout the rest of this article.
Step 1 - Get Details of Mail ServerGet name of the mail server responsible for email address "firstname.lastname@example.org".
Using a service called DNS, we can work out that the mail servers hosting the example email address return the following as a list of servers:
For our example, we'll use the first server in the list "gmail-smtp-in.l.google.com"
Step 2 - Connect To The Mail Server
Using a console tool on our desktop or server computer, we can manually "connect" to the mail server "gmail-smtp-in.l.google.com".
Step 3 - Have "Chat" With Mail Server
Once connected to a mail server, there is a set sequence (or protocol) of commands that we can type to converse with a mail server. We'll go into further detail on the exact commands later in this article.
Step 4 - From "Chat", determine if email address is valid or not.
From the recorded sequence of commands and responses in step 3 above, we can easily work out if an email address is valid or not.
Detailed Example Of The Ping Process
Taking our example email address "email@example.com" , let's step through an example using some freely available, desktop tools. The tools I'm using here are available in most editions of Windows.
Tools Required To Replicate This Example
Telnet Client (e.g. Microsoft Telnet Client or equivalent)
Console Application (e.g. Microsoft Command Console or equivalent)
How To Use The Tools
Low Level Walk Through Of Email Address Ping
Step 1 - Finding The Mail Server
In a console, type:
Here is the output from the console window:
Default Server: google-public-dns-a.google.com
> set q=mx
gmail.com MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
gmail.com MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com MX preference = 30, mail exchanger = alt3.gmail-smtp-in.l.google.com
gmail.com MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com
For the sakes of our example, we're going to use server gmail-smtp-in.l.google.com.
Step 2 - Connect To The Mail Server
Open another console window. Using the mail server identified above, open a connection as follows:
telnet gmail-smtp-in.l.google.com 25
You should receive a response similar to the following:
220 mx.google.com ESMTP kz3si11217105wjc.38 - gsmtp
Step 3 - Have a "Chat" with Mail Server
We type a sequence of commands into our telnet session (see above) as follows:
- HELO here.com
- MAIL FROM:<firstname.lastname@example.org>
- RCPT TO:<email@example.com>
For more information on the sequence of commands (or "protocol") used to converse with mail servers, see Simple Mail Transfer Protocol .
Here is the full transcript of a console, telnet session with the gmail mail server for our example email address:
220 mx.google.com ESMTP u8si7354684wiv.18 - gsmtp
250 mx.google.com at your service
250 2.1.0 OK u8si7354684wiv.18 - gsmtp
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. Learn more at
550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 u8si7354684wi
v.18 - gsmtp
221 2.0.0 closing connection u8si7354684wiv.18 - gsmtp
Connection to host lost.
Step 4 - Determine Result
The whole conversation with the mail server gives the result that "firstname.lastname@example.org" is not a valid email address. See lines starting with codes 550-1.1.1.
Pinging email boxes is a fairly straight forward process once you understand how it's done. However, don't be fooled by the simplicity of the example used in this article. Email address pinging is rarely so easy.
The things that make mailbox pings technically challenging are the policies put in place by remote mail servers to prevent spam. In our example above, I purposely used a Gmail address because Google mail servers have a fairly relaxed policy on connecting to them and having a "chat". Most other mail servers will have policies in place that prevent connection from "untrusted" computers(yes, that means your computer).