Viewing Full Headers

From DreamHost
Jump to: navigation, search


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 finding out 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.

How to view headers in your mail program

Finding the headers

Every email sent or received has a set of headers that are applied to that message. These headers of the email consist of important details such as who sent the message, at what time and to whom it was sent. The headers for the sent message and the received message will be different. The sent headers will have much less information since the message was sent, so it will not trace the hops the message took to get delivered to the final destination. The headers on the received email will show the complete journey the message took, starting from the sender details to the final recipient.

When submitting requests to DreamHost support regarding mail issues with sending and receiving, they will often request this information from you so they are able to confirm what happened during the transport of the message.

Finding headers through Webmail

DreamHost offers both SquirrelMail and Atmail as the Webmail interfaces you can use to access your mailbox. Both interfaces offer a different method of retrieving the full headers of a message. The process for each interface is outlined below.

Using SquirrelMail

Log into your mailbox through SquirrelMail. The login would be Just change to your actual domain. Once logged in, open the message in which you wish to view the headers. Once you open up the message, you should see this:


On the screenshot above, you will see a smaller version of the headers, which only shows the basic details of who sent the message, to whom, and when.

In the ‘Options’ section, you will notice a few links, one of them being ‘View Full Header’. Click that link to view the entire header details for that specific message:


Viewing headers in Atmail

View the following article for further details:

Finding headers through your mail program

The process in checking for the message headers of a message through a third party mail program can differ from program to program, but for the most part, the headers can be viewed by opening the message in question first.

Dh-kb-note-icon.fw.png Note: Not all mail programs will refer to the message headers as “headers”. Some programs might call this the “source” of the email. Below are some external links for various mail programs on how you can retrieve the full header details through them.

You can find more details on how to view full headers depending on what email client you use at the following sites:

Various mail clients
Google link for various mail clients
Various (older) mail clients
Microsoft Outlook 2000 – 2003
Microsoft Outlook 2003 and 2007
Microsoft Outlook 2013

Understanding received message headers

Using the details listed in the screenshot above, the following provides details on how to understand the information within the headers:

By default, mail clients will only show you the basic headers of a message:


This example is from a message viewed through SquirrelMail. The details on this set of headers only shows the basic information of the message.

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 then choose to view the message’s full header details:

Dh-kb-note-icon.fw.png Note: You must read the header details from the bottom up to see the path of the message.


This information has kind of an odd trait. You must read it from the bottom up to see the path of the message. In the example above, the first line, shown as ‘Return-Path’, shows where the email was created and originally sent from. Each 'Received' line is a server the email passed through on its way to the recipient.

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 that was received.
In the example listed above, you will see a strange looking email address here:
The email user listed (to the left of the ‘@’ symbol) is the user ID for the recipient email address hosted with us. The server listed (to the right of the ‘@’ symbol) is your DreamHost mail server that received this particular message.
There is a ‘Received by’ and ‘Received from’ details listed on the headers. When checking your headers, the ‘Received by’ is indicating that it was received by the IP or servername 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.
1.0: This is just showing the MIME version at 1.0, 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.
Dh-kb-note-icon.fw.png Note: The example headers used are a very basic set of headers for a message. The test message sent to produce the example was as simple as it can get. When implementing other options such as message filtering and/or spam filtering, the headers will contain other added details pertaining to those additional settings.

Tracking the message delivery through the headers

As noted above, headers are read starting from the bottom. In the same example from above, the message was originally sent on:

Received: by with HTTP; Wed, 7 Jan 2015 20:50:11 -0800 (PST)

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

X-Received: by with SMTP id t3mr1091761pdp.8.1420692611828; Wed,07 Jan 2015 20:50:11 -0800 (PST)

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

Received: by with SMTP id eu11so9302323pac.11 for <>; Wed, 07 Jan 2015 20:50:12 -0800 (PST)

Received: from ( [])
(using TLSv1 with cipher RC4-SHA (128/128 bits))
(No client certificate requested)
by (Postfix) with ESMTPS id 59075276046
for <>; Wed, 7 Jan 2015 20:50:12 -0800 (PST)

From there, it went from Google to your DreamHost incoming server at ‘homiemail-mx18’. That MX server then delivered the message to the final recipient.

As you can see, the entire delivery process only took 1 second from the point it was sent to the point it was received.

Dh-kb-note-icon.fw.png Note: There are tools that help to evaluate the message headers of a message:

Understanding sent message headers

Sent header details will look a lot smaller than the headers for a received message since it will not consist of the time stamps for the delivery of that message. This is because it hasn’t actually occurred yet. It will only show how it left the original sending server. Everything beyond the sending of the message will be listed on the received message headers.

There isn’t much information needed from these sent message headers. Below is an example of the sent headers for the same message example above when it was sent from DreamHost's test Google account:


The sent info above does not show the various ‘Received’ lines other than the time stamp of when it was sent along with the contents of the message. It does include the message ID Google applied once it was sent so they can track the message, if needed.

Reading bounced or undeliverable notification headers

When messages are sent from a DreamHost hosted email address and that message is rejected, it will look something like this:


(The image above was taken from the SquirrelMail interface, so it may look different depending on the program used to access your email. But the body of the message should be the same with the exception of the specific error.)

The actual bounce error pointing to why the message was rejected is the information at the bottom of the body of the rejection message:

<>: host[] said: 550 5.1.1
    <>: Recipient address rejected: User
    unknown in virtual alias table (in reply to RCPT TO command)

This error message will change depending on why the message was rejected. In this example, the message was sent to a user that does not exist and received a “Recipient address rejected” error.

Dh-kb-note-icon.fw.png Note: The headers of the actual bounce notice are not necessary. When troubleshooting rejected email issues, you want to see the original message headers instead to see how the original message was sent. The headers of the rejection will only show you the details of that message rejection email you received.