Viewing Full Headers
- 1 Overview
- 2 How to view headers in your mail program
- 3 Understanding received message headers
- 4 Tracking the message delivery through the headers
- 5 Understanding sent message headers
- 6 Reading bounced or undeliverable notification 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 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 our support staff regarding mail issues with sending and receiving, we’ll often request this information from you so we are able to confirm what happened during the transport of the message.
Finding headers through Webmail
DreamHost offers both Squirrelmail and RoundCube 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.
Log into your mailbox through Squirrelmail. The login would be webmail.yourdomain.com. Just change yourdomain.com 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:
Log into your mailbox through RoundCube. Open the message you wish to view the headers for. Once you open up the message, you should see this:
RoundCube actually calls the headers something else, so looking for the headers through this interface is a bit different, but still very simple. In the screenshot above, click the ‘More’ link (the icon shows three dots [...]) and this will drop-down a few more options. To view the headers of that message, click the ‘Show source’ link (the icon shows two angle brackets [<>]). This will open a new tab in your web browser and will show the headers there:
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.
|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:
|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:
- Delivered-To: firstname.lastname@example.org
- 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 our 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 wiki.
- 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.
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 10.70.116.227 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 10.70.55.163 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 mail-pa0-f52.google.com with SMTP id eu11so9302323pac.11 for <email@example.com>; Wed, 07 Jan 2015 20:50:12 -0800 (PST)
Received: from mail-pa0-f52.google.com (mail-pa0-f52.google.com [188.8.131.52]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by homiemail-mx18.g.dreamhost.com (Postfix) with ESMTPS id 59075276046 for <firstname.lastname@example.org>; Wed, 7 Jan 2015 20:50:12 -0800 (PST)
From there, it went from Google to our incoming servers 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.
|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 our 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:
<email@example.com>: host mx1.sub4.homie.mail.dreamhost.com[184.108.40.206] said: 550 5.1.1 <firstname.lastname@example.org>: 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.