Reading email headers


Viewing your message headers is like looking at the map that your email takes when being delivered to your mailbox. Understandably this map is very helpful in discovering the causes for many email problems that can be experienced on any system. From delayed mail to email bounces, headers are the number one clue in troubleshooting delivery issues that may occur.

Understanding received message headers

By default, mail clients will only show you the basic headers of a message, such as the sender and recipient. This information is useful, but it is not all of the information that you actually have access to. In your mail program, you can select a message and then choose to view the message’s full header details. You must read it from the bottom up to see the message's path.

The following is a quick overview of the basic fields you’ll see:

If the message is rejected, it will be sent back to the email address listed here, which is also the sender of the message.
The email address listed here is the original recipient of the email received.
The email user listed (to the left of the ‘@’ symbol) is the user ID for the recipient email address hosted with DreamHost. The server listed (to the right of the ‘@’ symbol) is your DreamHost mail server that received this message.
There is a ‘Received by’ and ‘Received from’ details listed on the headers. When checking your headers, the ‘Received by’ indicates that it was received by the IP or server name when the message was originally sent.
The ‘Received from’ would be the server that sent or relayed the email at any specific point in the header.
This shows the DKIM signature if the email has one. All emails sent from DreamHost-hosted mail accounts are signed with DKIM. You can read more about DKIM signing in the DKIM article.
This shows the MIME version, which has no relevance in troubleshooting mail delivery.
This shows the message being received at the first server. Then an ID is applied to it so the message can be tracked.

The example headers used are a very basic set for a message. When implementing other options, such as message filtering and/or spam filtering, the headers will contain other details pertaining to those additional settings.

Tracking the message delivery through the headers

As noted above, headers are read starting from the bottom. For example, a message is originally sent on:

Received: by with HTTP; Mon, 25 Mar 2024 14:19:22 -0700 (PDT)

This shows the message being received with the timestamp listed above. Once received, the 'X-Received' status applied to the SMTP ID for that message, which was also done at the same time:

X-Received: by with SMTP id 66mr1541980uav.133.1474579162566; Mon, 25 Mar 2024 14:19:22 -0700 (PDT)

The message was sent from a test Google user. The details below show Google looking to pass the message off to the final recipient:

Received: by with SMTP id eu11so9302323pac.11 for <>; 
Mon, 25 Mar 2024 14:19:22 -0700 (PDT) from ( [])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested) by (Postfix)
with ESMTPS id 7C9F08009A15 for <>; Mon, 25 Mar 2024 14:19:22 -0700 (PDT)

From there, it goes from Google to your DreamHost incoming server at 'homiemail-mx18'. That MX server then delivers the message to the final recipient.

In the example above, the entire delivery process only takes 1 second from the point it was sent to the point it was received.

Some tools exist that help to evaluate the message headers of a message: 

See also

Did this article answer your questions?

Article last updated PST.

Still not finding what you're looking for?