MailDingo

Worked example 8 of 11

A message delayed by greylisting and a stuck queue

Four servers in three time zones and two very different delays. Converting every timestamp to UTC shows exactly where the time went.

Open in the analyser

What to notice

The sender says they emailed at 08:58 in the morning; the recipient got it before 1 pm Central European time. Every Received line uses its own server's local time, so the times only make sense after converting them to UTC:

Hop Local time on the line UTC Wait
Written (Date header) 08:58:02 −0700 (PDT) 15:58:02
1, sender's server 08:58:04 −0700 15:58:04 2 s
2, sender's outbound relay 19:09:44 +0000 19:09:44 3 h 11 min
3, university gateway 21:46:58 +0200 (CEST) 19:46:58 37 min
4, mailbox server 15:47:01 −0400 (EDT) 19:47:01 3 s

The 3 h 11 min gap is inside the sender's own network: the message sat in the queue on mail.example.org until the outbound relay accepted it. The 37 minutes at the university gateway is typical greylisting: the gateway refused the first attempt from an unfamiliar server with a temporary error, and the relay retried later, as SMTP requires (RFC 5321 §4.5.4.1).

The mailbox server's line uses a named zone (EDT) and a two-digit year (26), both obsolete forms that RFC 5322 §4.3 tells readers to accept; MailDingo reads them correctly.

The analysis

Produced by the same code that runs in the analyser.

Looks genuine

Authenticated: it really came from example.org

Your provider's DMARC check passed, so example.org (or a service it authorised) sent this message. That proves the domain, not the intent: make sure example.org is the organisation you expect.

  • Fromexample.org
  • Sent from192.0.2.25
  • Hops4
  • In transit3 h 48 min

Red flags 1

  • Low
    Slow hop: 3 h 11 min

    Between hop 1 and hop 2 the message waited 3 h 11 min (at relay.example.org). See the route below. Learn more show in headers

1 note
  • Slow hop: 37 min 14 s. Between hop 2 and hop 3 the message waited 37 min 14 s (at gw1.uni.example). See the route below. Learn more show in headers

Authentication

Checked by gw1.uni.example, the server that added the top Authentication-Results field: normally your own provider. show in headers

DMARC DMARC asks: did SPF or DKIM pass for a domain that matches the From address you see? That match is called alignment.

dmarc=pass From domain example.org

SPF or DKIM passed for a domain that aligns with the visible From domain: the From address is authentic.

domain policy p=reject · applied: none

What dmarc=pass means

SPF SPF checks whether the server that delivered the message was allowed to send for the envelope (bounce) domain.

spf=pass envelope example.org

The sending server is on the envelope domain's list of permitted senders.

What spf=pass means

DKIM DKIM checks a cryptographic signature that a domain (d=) put on the message, proving that domain handled it and the signed parts were not changed.

dkim=pass signed by example.org selector s2026

The signature verified: the signing domain really handled this message and the signed content is unchanged.

2048-bit key; unprotected

What dkim=pass means

Alignment with the From address

From domainexample.orgorganisation: example.org
  • SPF example.org passaligned (exact match)
  • DKIM example.org passaligned (exact match)

At least one passing check is aligned with the From domain, which is all DMARC needs. Alignment is shown in relaxed mode (same organisation); a domain can demand strict mode (exact match) in its DMARC record, which this tool can't look up.

DKIM signatures on the message

  • example.org selector s2026 · rsa-sha256 · signed 2026-10-16 15:58:04 UTC · covers 5 header fields ↧

Who it claims to be from

From
Rita Okafor r.okafor@example.org ↧
Return-Path
r.okafor@example.org ↧
Subject
Re: Lab samples arriving Monday ↧
Date
Fri, 16 Oct 2026 08:58:02 -0700 = 2026-10-16 15:58:02 UTC ↧
Message-ID
<7c2e9a1f-3b4d-4e8a-a6c1-2f0d9b8e7a65@example.org> ↧

Route 4 hops

Oldest first. Each server adds a Received line on top, so this is the header list read from the bottom up. Times are converted to UTC.

  1. Written Date header: 2026-10-16 15:58:02 UTC (sender's clock −0700)
  2. +2 s
    mail.example.org
    from [192.168.1.23] 198.51.100.140
    ESMTPSA · 🔒 encrypted · sender logged in
    2026-10-16 15:58:04 UTC (−0700 local) ↧
  3. +3 h 11 min
    relay.example.org
    from mail.example.org 192.0.2.80
    esmtps · 🔒 encrypted TLS 1.3
    2026-10-16 19:09:44 UTC (+0000 local) ↧
  4. +37 min 14 s
    gw1.uni.example
    from relay.example.org 192.0.2.25
    ESMTPS · 🔒 encrypted
    2026-10-16 19:46:58 UTC (+0200 local) ↧
    Probably where your provider took the message in from the outside world. The IP here was seen by the receiving server, so it is the most trustworthy origin address in the headers.
  5. +3 s
    mbox3.uni.example
    from gw1.uni.example 203.0.113.5
    LMTPSA · 🔒 encrypted · sender logged in
    2026-10-16 19:47:01 UTC (−0400 local) ↧

First to last server: 3 h 48 min; the slowest step was hop 2 (3 h 11 min). Reading delays

The headers 19 fields

sender route authentication ARC

Return-Path: <r.okafor@example.org> explained ↑
Delivered-To: lin.zhou@uni.example
Received: from gw1.uni.example (gw1.uni.example [203.0.113.5]) by mbox3.uni.example (Cyrus 3.8.4) with LMTPSA id 0f2c3d4e for <lin.zhou@uni.example>; Fri, 16 Oct 26 15:47:01 EDT explained ↑
Received: from relay.example.org (relay.example.org [192.0.2.25]) by gw1.uni.example (Postfix) with ESMTPS id 4Hq8kT0pZ5z9xQ for <lin.zhou@uni.example>; Fri, 16 Oct 2026 21:46:58 +0200 (CEST) explained ↑
Authentication-Results: gw1.uni.example; spf=pass smtp.mailfrom=example.org; dkim=pass (2048-bit key; unprotected) header.d=example.org header.i=@example.org header.s=s2026 header.b=Yt5q0aB1; dmarc=pass (p=reject dis=none) header.from=example.org explained ↑
X-Greylist: delayed 2234 seconds by postgrey-1.37 at gw1.uni.example; Fri, 16 Oct 2026 21:46:58 CEST
Received: from mail.example.org ([192.0.2.80]) by relay.example.org with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from <r.okafor@example.org>) id 1tB4zq-0003Xy-2N for lin.zhou@uni.example; Fri, 16 Oct 2026 19:09:44 +0000 explained ↑
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.org; s=s2026; t=1792166284; h=from:to:subject:date:message-id; bh=U3ludGhldGljIGJvZHkgaGFzaA==; b=Yt5q0aB1U3ludGhldGljIHNpZw== explained ↑
Received: from [192.168.1.23] (unknown [198.51.100.140]) (Authenticated sender: r.okafor@example.org) by mail.example.org (Postfix) with ESMTPSA id 5D7E9F1A2B for <lin.zhou@uni.example>; Fri, 16 Oct 2026 08:58:04 -0700 (PDT) explained ↑
From: Rita Okafor <r.okafor@example.org> explained ↑
To: Lin Zhou <lin.zhou@uni.example>
Subject: Re: Lab samples arriving Monday explained ↑
Date: Fri, 16 Oct 2026 08:58:02 -0700 explained ↑
Message-ID: <7c2e9a1f-3b4d-4e8a-a6c1-2f0d9b8e7a65@example.org> explained ↑
In-Reply-To: <20261015174012.GA4412@uni.example>
References: <20261015174012.GA4412@uni.example>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
User-Agent: Mozilla Thunderbird

All names, domains and addresses on this page are fictional: domains under example.com/.net/.org and the reserved .example and .test names (RFC 2606, RFC 6761), IPv4 addresses from the documentation ranges in RFC 5737 and IPv6 from 2001:db8::/32 (RFC 3849). Signatures are placeholders and won't verify.