Troubleshooting Mail : Basic Tips

In a shared or managed hosting environment, many people would agree that one of the most commonly reported issue with our helpdesk is email.

It has become a best practice to perform basic email troubleshooting , depending on the error / bounce back reported. These steps could be performed before or after the issue has been fixed — either to confirm it is working or to reproduce a particular problem.

The purpose of this document is to describe how mail gets from one users email client to another users mailbox. Each action that takes place can be tested and verified by an some level of admin with a few exceptions. After going through this document you should understand what takes place when a user sends email or has email sent to them.

Test SMTP Authentication

SMTP users BASE64 encoding to transmit usernames and passwords. You will need to take the username of the client ( user@domain.com ) and the password and convert them to BASE64. Links provided below to do this:

* http://www.webpan.com/customers/Email/base64_conversion.htm
* http://makcoder.sourceforge.net/demo/base64.php
* http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/

Test Sucessful if: 235 Authentication successful

Testing if user is local or remote

Our mailserver will only accept email for a remote host if you authenticate first. Without authentication it will only accept email for local domains.

Local Domain if: 250 ok
Remote Domain if: 553 sorry, that domain isn’t in my list of allowed rcpthosts

Looking up an MX record

Two or three lookups should be done off of various DNS servers. ns1.stardothosting.com, a public recursive NS server (168.144.1.130), and the NS server specified in the WHOIS of the domain. Ideally these will all match, if they don’t then connections to the incorrect mailserver may be made.

WINDOWS COMMAND PROMPT

Testing to see if remote server will accept a message

Similar to the test we use to see if our mail server will take the message as a local delivery you can do the same test on the remote server to see if it will take the message.

Test Sucessful if: 250 ok

Send an entire message to a mailserver

Test Sucessful if: 250 ok

Check to see if a remote server is in an RBL

You will need to find out what the IP address of the machine that is actually sending the email out to the internet. There are many tools out there to check you rdomain / IP address againts many RBL lists :

* http://www.robtex.com/rbl/
* http://www.anti-abuse.org/multi-rbl-check/
* http://checker.msrbl.com/

RBL’s Checked Against:

* relays.ordb.org
* sbl-xbl.spamhaus.org
* bl.spamcop.net

SpamAssassin Troubleshooting

Via the webmail (Squirrel Mail) place the address that is trying to email the customer in the whitelist. When the email arrives check the email headers which will show any SpamAssassin checks that applied points to the message. Details on the SA tests and how to check email headers is available on the links below:

* Headers: http://www.spamcop.net/fom-serve/cache/19.html
* SA Tests: http://spamassassin.apache.org/tests_3_1_x.html