How to track ISP delays

Hey, your mail was delayed. Was it delayed inside of the ISP, or was it queued up in your ESP's outbound mail server waiting to connect to Yahoo or Gmail? Here's how to tell.

First, add your own address to the mailing list, so you can get a copy of each mailing that goes out. If you're seeing delivery delays at Gmail, be sure to be using a Gmail address. If the delivery delays are at Yahoo, be sure to sign up your personal Yahoo Mail address.

After the next send, and after you receive your copy of the mailing, select "view source" or "view full headers" for your email message, so you can review the full list of email headers. Here's an example of the full email headers from an email sent to my Gmail account.
Delivered-To: x@gmail.com
Received: by 10.64.251.233 with SMTP id zn9csp25517iec;
        Fri, 5 Feb 2016 07:08:39 -0800 (PST)
X-Received: by 10.107.150.65 with SMTP id y62mr15291987iod.153.1454684919793;
        Fri, 05 Feb 2016 07:08:39 -0800 (PST)
Return-Path: (bounce-1922895_HTML-60302323-143835-0@bounce.xnnd.com)
Received: from mta.xnnd.com ([291.245.678.2579])
        by mx.google.com with ESMTP id z5si27869144igw.51.2016.03
        for (x@gmail.com);
        Fri, 05 Feb 2016 07:08:39 -0800 (PST)
Received-SPF: pass (google.com: domain of bounce-1922895_HTML-60302323-143835-0@bounce.xnnd.com designates 291.245.678.2579 as permitted sender) client-ip=291.245.678.2579;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of bounce-1922895_HTML-60302323-143835-0@bounce.xnnd.com designates 291.245.678.2579 as permitted sender) smtp.mailfrom=bounce-1922895_HTML-60302323-143835-0@bounce.xnnd.com;
       dkim=pass header.i=@xnnd.com
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=20160201; d=xnnd.com;
 h=From:To:Subject:Date:List-Unsubscribe:MIME-Version:Reply-To:Message-ID:Content-Type; i=company@xnnd.com;
 bh=KrnP16wWRjpK1XOIxh2m6ly5JWw=;
 b=roFrYh0KwvcSE+WWotHfkg7JoXMRagypbogsQ3vmPKlCY6qeXxAnnfUSmaxBkh3uRqDQpP/TlzS9
   p/TzG6U3mV6E7IrXJmWXzTTsZLcVqMnlYiIuQMH3lK9/Q2nC5slmLeoHE+LmQ+2DZUqv6VpK9ZkY
   xapDWMjIbYwl7wxksng=
Received: by mta.xnnd.com id hmitfe163hs0 for (x@gmail.com); Fri, 5 Feb 2016 09:06:55 -0600 (envelope-from (bounce-1922895_HTML-60302323-143835-0@bounce.xnnd.com))
From: "Email Company" (company@xnnd.com)
To: (x@gmail.com)
Subject: Enter the Signed Poster & Gift Card Sweepstakes!
Date: Fri, 05 Feb 2016 09:06:55 -0600
List-Unsubscribe: (mailto:leave-fc77157977660c74707b28313958@leave.xnnd.com)
MIME-Version: 1.0
Reply-To: "Email Company" (reply-fe6c12707664067e7717@xnnd.com)
Message-ID: (a0aa19ecb7755@xnnd.com.internal)
Content-Type: multipart/alternative;
 boundary="5f0s91DQCKVD=_?:"
What's important here are the lines that start with "Received." These are called the "received headers," and they include timestamps that show you the time a message was hand off from hop to hop to hop to final delivery. You read them starting from the BOTTOM-most received header and working your way upward.

So let's excerpt the received headers out, and reverse their order.
  1. The bottom-most received header looks like this: Received: by mta.xnnd.com id hmitfe163hs0 for (x@gmail.com); Fri, 5 Feb 2016 09:06:55 -0600 (envelope-from (bounce-1922895_HTML-1508722469-60302323-143835-0@bounce.xnnd.com))
  2. The second bottom-most received header looks like this: Received: from mta.xnnd.com (mta.xnnd.com. [291.245.678.2579]) by mx.google.com with ESMTP id z5si27869144igw.51.2016.02.05.07.08.39 for (x@gmail.com); Fri, 05 Feb 2016 07:08:39 -0800 (PST)
  3. The top-most received header looks like this: Received: by 10.64.251.233 with SMTP id zn9csp25517iec; Fri, 5 Feb 2016 07:08:39 -0800 (PST)
Now let's just take the date/time information out of that:
  1. Fri, 5 Feb 2016 09:06:55 -0600
  2. Fri, 05 Feb 2016 07:08:39 -0800 (PST)
  3. Fri, 5 Feb 2016 07:08:39 -0800 (PST)
Date/time #1 is when the message was created on the ESP's mail server. Date/time #2 shows when the message was handed off to Gmail. When you adjust the time for the time zone difference, you see that it took the ESP about 90 seconds to hand the message off to Gmail. That 90 seconds is the difference in time between time #1 and time #2. That's how long between message creation and message acceptance by Gmail. (It can be off if Gmail or the ESP don't have perfectly synchronized clocks; but even with that limitation, this information can still be pretty useful.)

Date/time #3 is showing the timing for an internal email message hand-off at Gmail. It probably roughly correlates to when the message was delivered to the inbox. Note that #2 and #3 show the same time, probably implying that the message was immediately delivered to the inbox.

What if time #2 is 90 minutes later than time #1? That means that your ESP wasn't able to hand the email off to Gmail until 90 minutes after it was created.

What if time #3 is 90 minutes later than time #2? That means that Gmail accepted the message, then something unknown to us happened in the middle, delaying the message, and then it was delivered to the inbox 90 minutes later. Probably.

Let me know if you find this useful? I'd love to hear your feedback in comments.

No comments:

Post a Comment

Comments policy: Al is always right. Kidding, mostly. Be polite, and you're welcome to join in, even if it's a differing viewpoint.