Comparing Email Hosts - Testing Email Servers
If your looking for a hosting service to host your web site, how can you tell how good they are? It's easy to look through comparison charts of plans and features, but what's their service really like? One thing people check is the browser response time of sites hosted by the company, but they often forget about checking the email servers. If you plan on using the firm's mail servers you need to check them out as well.

Many hosting companies realize that their customers buy their product based on search engine placement, advertising, and plan features, and that's what they spend money on. Reliability, true bandwidth provided, and email service are post-purchase issues to be mitigated by the customer's switching costs.

Web page response times are something you can test informally just by timing a page request or reload in your web browser. But how do you really test email, particularly if you don't have an email account with a host?

A very good indicator of the loading (or perhaps overloading) of a host's mail system is the responsiveness of the server that receives mail from the Internet. Here's how to test it:


Finding a host's mail server

To test a host's mail server, you need to find it's name. The easiest way to do this is with the nslookup program on your computer. Unlike the whois function you may see on domain registrar's web sites, nslookup can provide any registered information about a host. On Windows 2000 or later, just open a Command Prompt and type "nslookup". If the networking settings are configured properly, you'll see the name and address of your DNS server followed by a ">" prompt.

Now type in the command "set type=MX" to instruct nslookup to look for MX records (which identify the site's mail server) instead of only the IP address of the site. Then type in the address of a domain (website) hosted by the company. For this example, we'll use this website, imagecircuits.com. Do not type "www." in front of the domain.

What you see may look complicated, but it just takes a little study to understand. We're interested in the line containing "MX", which says that this site receives mail on the computer "mx.futurequest.net". Some sites may list more than one mail exchanger. If this is the case, pick the one with the lowest preference value.

To get back to the command prompt, type "exit" into nslookup.

What if you're not using Windows? Nslookup comes from the Unix world, so it's on all Linux machines. (I can't comment about Apples, however). If nslookup doesn't seem to work, many technical sites offer a web-based version. You can search on Google for "nslookup" to find them. An example is http://www.zoneedit.com/lookup.html.

Keep in mind here we're looking for the email server for a hosting company's users, not the hosting company's mail. Checking the server for "badhost.com" may yield a great server, since they want their email to work well. But their customers may be assigned to another mail server that's awful.

If you want to see how your current host is handling your email, you can just type in the domain name of your site. But how can you find the domain of a site hosted at a new hosting company you're considering? There's no direct way to use a utility program to find out. But there are three ways that usually work:

  1. Look at the hosting firm's website. Often, they will have a free directory or search engine that their customers can list themselves in.
  2. Look for testimonial quotes ("I just moved to badhost.com and they're much better than my old host - Joe Loser, www.loser.com") on the hosting company's site. If the site's URL isn't given, you can often search for "Joe Loser" in Google and find his site.
  3. Call the hosting company and say you're thinking of using them, could they mention a few URL's so you can see how fast and reliable their servers are? Yes, social engineering still works...

You can usually verify that a site is located at a particular hosting firm by checking traceroute - just type "tracert loser.com" at a command prompt. Look at the last few lines of the results and you'll usually see the hosting company's name in right column.


Manually testing the mail server

 

 

 

 

 

Rating a Server
(my informal scale)

Response Time Rating
0.-0.5 sec. Excellent
0.5-1 sec. Fine
1-3 sec. OK
3-10 sec. Recheck Later
>10 sec. Go Elsewhere

Now that you've got the mail server's name, testing it is easy. Mail is sent over the internet using a technique called SMTP. To test the server, we're just going to connect to it and start to send it a email message.

In your command prompt window, type "telnet mailServerName 25". Then wait. If you have a good server, within a second or two, the screen will clear and a sign-on message from the mail server will appear at the top, usually starting with "220".

If you have a bad server, one perhaps so overloaded it can't take any more mail, you won't get a 220 or it will take several seconds (I've seen two or three minutes sometimes) to get a response. If this is the case, forget this company for email.

As a further test, once you get a response, you can try typing some other commands into the mail server. When you type these, keep in mind that the server will probably be confused by backspaces - you'll have to type the command correctly on your first try.

One command you can try is "help" (followed by the enter key). Some servers will display a list of commands they support, while others will have this feature turned off.

Another command is "helo loser.com"(followed by the enter key), where loser.com is your domain name. The server could care less about your domain, so you can just make up one if you like.

Both of these commands should return a 220 or similar response in less than a second if the server is good.

A final command you can try if you happen to have a good email address for someone at the site you're testing is: "vrfy <[email protected]>" where [email protected] is the address you've found (perhaps on their website). Don't forget the "<" and ">" around his name. This will force the mail server to do a little more work in checking to see if [email protected] is an email address it is responsible for.

To exit enter "quit" or just close the Command Prompt window.


Automated Testing If you are really concerned about a site's email servers (perhaps you've lost mail coming to your own site), you can use a program to automatically make the test above, or even send yourself a periodic email to make sure things are working right. If you're interested in such a program, send me an email at the address at the bottom of the page.

Side note: the gaping security flaw of email If you are the curious sort and do some further research on SMTP commands, you will quickly discover the mail, rcpt, and data commands to send mail messages. While it's unlikely you can send mail to someone not on this server, there is nothing to prevent you from saying the message is from someone else. For example, let's pretend we are the U.S. President:
When [email protected] checks his email, he'll see a message from "[email protected]". This is why you may occasionally receive a bounced email you didn't send, because a spammer has used your address in the from: field instead of his. Or, why you might get an unsubscribe complaint from someone you've never heard of.

Before you become indignant at this flaw, keep in mind that these protocols were written twenty years ago, when the Internet was a very private and trustworthy place. Also, "snail mail" is no better - you can just type someone else's address in the upper right corner of the envelope.

(If you decide to send mail like this for real, keep in mind you could be breaking the law...)


back to Personal Projects


Send mail on technical problems with this page to: [email protected]