✉ Email deliverability

Testing deliverability before you send: seed inboxes and checks

A practical procedure for checking a send before it goes out: authentication headers, test mailboxes, placement tests, links and the plain-text version.

A send to thousands of people cannot be recalled. If the main link is broken, if the DKIM signature is missing because of a configuration error, or if the message lands in spam at a major provider, you find out when it is too late. A short pre-send check, always the same and well documented, prevents most of these incidents. You don't need an expensive tool: you need a method.

1. Check authentication on a real message

The first step is to send the test message, with the same configuration as the real send, to a mailbox at a large provider and open its full headers. Almost every client lets you view the original message.

The header to look for is Authentication-Results, added by the server that received the message:

Authentication-Results: mx.example.net;
  dkim=pass header.d=news.example.com header.s=s2026;
  spf=pass smtp.mailfrom=bounce.news.example.com;
  dmarc=pass header.from=news.example.com

Three points need checking here:

  1. DKIM: pass, with a header.d domain equal to or a parent of the From domain;
  2. SPF: pass, with an smtp.mailfrom domain aligned at least in relaxed mode;
  3. DMARC: pass.

A test message sent from the platform's editor sometimes takes a different path from real campaigns. If possible, send the test as a campaign to a small segment of internal addresses.

2. Use test mailboxes at the main providers

A seed list is a small set of mailboxes created specifically at the providers best represented on your list. By receiving every send, they show where the message landed: the inbox, a tab such as «Promotions», or spam.

Provider What to watch
large free webmail services inbox, tabs, spam
hosted business mail quarantine, security warnings on links
national providers often different filters from international ones
desktop and mobile clients rendering, blocked images, plain-text part

Seed mailboxes have a well-known limit: they lack a real user's engagement history. A mailbox that never opens anything may be treated differently from an active subscriber. So they should be used as a warning signal, not as an exact prediction. If a seed mailbox gets the message in spam for several sends in a row, something has changed.

It is worth regularly opening and reading the messages in seed mailboxes, and moving to the inbox any that landed in spam, so their behaviour gets closer to that of a real user.

Before sending:

  • click every link, including the unsubscribe link and the preference centre;
  • check that links use the correct tracking domain and not the shared default one;
  • make sure there are no links to test pages, development environments or internal addresses;
  • open the plain-text version and check that it is readable and consistent;
  • view the message with images blocked;
  • check personalisation and dynamic fields using test contacts with empty fields, to avoid greetings like «Hi ,».

4. Verify the service headers

For promotional sends, the test message's headers must include:

  • List-Unsubscribe with an HTTPS URL, and optionally an email address;
  • List-Unsubscribe-Post: List-Unsubscribe=One-Click;
  • both covered by the DKIM signature, that is, listed in the signature's h= field.

It is also the moment to check that the Feedback-ID header, if used, contains the right identifiers.

5. Check the list, not just the message

Many delivery problems come not from the message but from the audience. Before confirming the send:

  1. check which segment is selected and how many contacts it contains;
  2. exclude suppressed contacts and those inactive according to your policy;
  3. ask whether the segment includes recent imports that were never verified;
  4. compare the volume with your usual one: a send much larger than normal deserves to be spread over several hours or days.

6. Send in batches

For important sends, it pays to start with a small part of the list, say 5-10% of the most active contacts, and wait an hour before continuing. In that time you can watch bounces, temporary rejections and early complaints, and stop if something is wrong.

In my work, a written checklist, identical for every send, has proved more useful than any tool: the errors that slip through are almost always steps skipped in a hurry.

In short

  • Authentication-Results on a real message shows whether SPF, DKIM and DMARC pass and are aligned.
  • Seed mailboxes are a useful warning signal, not an exact prediction of placement.
  • Every link must be clicked, including unsubscribe and the preference centre.
  • List-Unsubscribe headers must be present and signed with DKIM.
  • Checking the segment and sending in batches prevents the most serious incidents.
MM
Marco Marzaduri

Marco Marzaduri works in cybersecurity, digital forensics and web development. A computer science graduate, he combines rigorous technical analysis with attention to the people who use technology.

Read also