Freebsd 8 mail log status, what do these mean

emailfreebsdpostfix

I'm new at some of the server stuff and need a bit of help understanding what the /var/log/maillog file is saying.

I've sent 200 emails for an email newsletter I'm running. In the "maillog" file I show some emails that say "status=sent", "status=deferred", "status=Accepted for delivery", "status=sent (Message Qued for delivery)", "status=sent (Message Accepted).

What do these status really mean? In other words, I assume a message that says "Message Accepted" means the recipient actually read the email, correct?, however an email that just has "sent", or "qued for delivery" did not actually get to the recipient yet?

How can I find out how to interpret these status and learn if my emails have actually been read, or are at the recipient's mailserver waiting for them to download and read, etc. is there somewhere that will explain these for me? I'd like to know if my email program really is doing its job sending the emails out, and of the emails that got out, which ones actually got delivered to the recipient.

Thanks for any tips or advice.

Best Answer

The status value itself isn't as valuable as the data in parenthesis that directly follows it, which gives a better description of what's going on.

"Message queued for delivery" - This means the transaction between your server and the target server has yet to transpire for that particular message, this usually means something just sent the message, and your SMTP server is acknowledging it's existence

"Message Accepted" - This means the destiantion server acknowledges that the message has been received on it's end. (It doesn't indicate read)

"Bounced" - This typically means that something went wrong - either the email was rejected from the target email server because the email address didn't exist, OR it could be rejected due to being on an RBL. This also means the email will NOT be delivered, nor handled anymore by the server. AKA: The message is dead in the water.

"Deferred" - This means that something temporary has happened to cause the message to not be delivered, but the server (yours) hasn't given up and will try again later. This is also common to see when the target SMTP server uses an anti-spam technique known as 'greylisting'.

Other things, here's an example of a log line from my mail.log:

postfix/qmgr[32131]: 3858792A80: from=<foo@domain.com>, size=757, nrcpt=1 (queue active)
postfix/smtp[32135]: 3858792A80: to=<foo@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.91.27]:25], delay=8, delays=8/0.01/0.4/1.5, dsn=2.0.0, status=sent (250 2.0.0 OK
 1307169606 6si4629303qcd.120)

relay=gmail-smtp-in.l.google.com[74.125.91.27]:25] = Target SMTP server for the 'to' email address

delays=0.08/0.01/0.4/1.5 =

  • 0.08s = time from message arrival to last active queue entry
  • 0.01s = time from last active queue entry to connection setup
  • 0.4s = time to negotiate connection (EHLO, etc)
  • 1.5s = time spent transferring entire message

A good way to learn is to simply tail your mail log and send emails in various ways - watch what happens when you send to bad accounts; or to a server that uses greylisting. block the outbound port and send one.