Detailed Guide On How To Do Mailbox Pinging

"Pinging" an email box is a way to see if an email address is valid or not. Learn how it's done.

data analytics
Foreword

 

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.

Introduction


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:

     

     not.a.valid.emailaddress.1234qa@gmail.com

     

    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 "not.a.valid.emailaddress.1234qa@gmail.com".

    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: 

    • 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

    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 "not.a.valid.emailaddress.1234qa@gmail.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:  8.8.8.8
    
    > set q=mx
    > gmail.com
    Server:  google-public-dns-a.google.com
    Address:  8.8.8.8
    
    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:

    1. HELO here.com
    2. MAIL FROM:<me@here.com>
    3. RCPT TO:<not.a.valid.emailaddress.1234qa@gmail.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:<me@here.com>
    250 2.1.0 OK u8si7354684wiv.18 - gsmtp
    RCPT TO:<not.a.valid.emailaddress.1234qa@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. 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 "not.a.valid.emailaddress.1234qa@gmail.com" is not a valid email address. See lines starting with codes 550-1.1.1.

    Conclusion

     

    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).

    Related Resources


    This artical was taken from:

     https://tools.email-checker.com/Articles/Ping/How_To_Ping_Email_Address/