Trouble Shooting Email Issues

There are a number of things I look for when I receive an email about one of our clients not being able to send email. After reading through the case, the first thing I do is look at the bounce back message. Usually the error code within the message will tell me whats wrong. There are times when you don'e get anything useful back. In that case, I do the following to try and get more information:

  1. After determining the client is in fact using our mail servers to send mail, I want to know what port are they connecting on? 25, or 587?
  2. Is the server on any black lists? Is the client on any black lists? 
  3. I know we have a rDNS set up, but what about the client?
  4. Is DNS working properly for the domain I want to send mail to?

    dig domain.ext mx
  5. Manually test sending mail:
    telnet mailserver 25
    HELO yourserver
    If the server requires authentication, then the next three lines apply to you.
    AUTH LOGIN
    base64 encoded username:
    dXNlcm5hbWU=
    base64 encoded password:
    cGFzc3dvcmQNCg==
    MAIL FROM: your email
    RCPT TO: emailto
    DATA
    Subject: Subject
    Body text
    .
    QUIT

Full Example:

$ telnet mail.example.com 25
Trying 127.0.0.1...
Connected to mail.example.com (127.0.0.1)
Escape character is '^]'.
220-mail.example.com ESMTP Exim 4.66 #1 Wed, 09 May 2010 00:00:00 -0500
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
EHLO mail.example.com
250-mail.example.com Hello  [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
AUTH LOGIN
334 VXNlcm5hbWU6
dXNlcm5hbWU=
334 UGFzc3dvcmQ6
cGFzc3dvcmQNCg==
MAIL FROM: your email
RCPT TO: emailto
DATA
Subject: Subject
Body text
.
QUIT

Some times there are times where you need more information and it may resolve the issue quicker if you enlist the help of the admin of the other server.