Investigating delays in email delivery

Imagine you want to make an online payment, and your bank sends you a one-time code via email confirming your identity. It takes more than ten minutes to receive this code, and you want to know why it took so long. This page discusses how to determine such delay as well as allow you to analyze any message by inspecting its headers.

Emails, by design, travel through multiple SMTP servers before reaching the final destination. Let's call these intermediate SMTP servers a "hop". Delays can occur at any hop; therefore, the first step is identifying the hop that took the longest. Consider the image below as an example:

In the example above, four SMTP servers come into play, and a delay could occur at any stage.

Investigation Steps

  • The message headers are modified as it passes through each SMTP server. Analyzing these headers can give essential information about its path and the time it takes at every hop.
  • Email headers contain a list lines in a name-value pair format. The Received header, is what is important for our purpose, which contains a timestamp when the message was received at that hop.
  • Comparing the gap between these timestamps reveals the hop that look the most time.

Actual Analysis

  • Copy the email headers from any existing email. Ensure you copy these headers from the last hop - meaning the email client such as Outlook or Mozilla Thunderbird. Click here for instructions on how to copy these headers in MS Outlook.
  • Paste the contents of these headers below.