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 Server
Get 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
How to Enable Telnet Client In Windows 8 and 8.1.
See here .
How to Open a Console in Windows
See here .
Low Level Walk Through Of Email Address Ping
Step 1 - Finding The Mail Server
In a console, type:
nslookup set q=mx gmail.com
Here is the output from the console window:
C:\>nslookup Default Server: google-public-dns-a.google.com Address: 220.127.116.11 > set q=mx > gmail.com Server: google-public-dns-a.google.com Address: 18.104.22.168 Non-authoritative answer: 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 HELO here.com 250 mx.google.com at your service MAIL FROM:<firstname.lastname@example.org> 250 2.1.0 OK u8si7354684wiv.18 - gsmtp RCPT TO:<email@example.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. Learn more at 550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 u8si7354684wi v.18 - gsmtp quit 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).