LetterDuck
Download

The pre-send checklist

The gate we run before a campaign goes out. Ten items, one line each on how to check them, and the three numbers that stop a send outright.

Updated Aug 8, 2026

Ten checks stand between a finished campaign and a send. None takes longer than a minute, most take fifteen seconds, and every one of them is on this list because the cost of skipping it lands on the whole domain rather than on the single message. A bad campaign does not just underperform. It teaches Gmail something about you that takes weeks to unteach.

This sheet is for whoever presses send: the person running a newsletter, the one who inherited a list they did not build, the team where three people can start a campaign and nobody owns the outcome. The policy behind it lives in our deliverability handbook. This is the version you tape next to the monitor.

The gate

#CheckHow to check itStop if
1Suppression list appliedExport the send audience, diff it against your suppression list of bounces, complaints and unsubscribesAny overlap at all
2Authentication still passingSend one copy to a Gmail address, open it, choose Show originalSPF, DKIM or DMARC reads anything but pass
3One-click unsubscribe headersIn that same Show original view, search the headers for List-Unsubscribe and List-Unsubscribe-PostEither header is missing
4Plain-text part presentView the raw source of the test: the message is multipart/alternative and the text/plain half reads like EnglishThe text part is missing or is stripped tags
5Text to image ratioTurn image loading off and read what is leftThe message is one image, or images carry the message
6Links on your own domainHover every link and read the hostnameA shortener, or a domain you do not control
7From identity unchangedCompare the From name and address against your last sendEither changed without a reason you can state out loud
8Seed test sent and readSend to a Gmail, an Outlook or Hotmail, and an Apple Mail address, then open all three on a phoneAny copy lands in spam or renders broken
9Complaint and bounce ratesRead your last send's report: complaints under 0.1%, bounces under 2%Complaints at 0.3% or bounces above 2%
10Volume inside the rampToday's planned volume against yesterday's actual: no more than 10 to 20% higherThe jump is above 30%, or the last send was more than a week ago

Copy this into your own tracker

The four that fail most often

Suppression, because timing beats intent. Checking the list once when you build the audience is not the same as checking it at delivery. A campaign that takes twenty minutes to go out can collect an unsubscribe in minute three, and the rule allows two days to honor it but nobody who just unsubscribed is feeling patient. Our send path checks suppression before every individual message rather than once per campaign, which is the version of this check that a spreadsheet cannot do for you.

The headers, because the platform is not always doing it. RFC 8058 one-click unsubscribe needs both headers, and the mailto or URL has to actually work when a mailbox provider calls it without a human present. Read them in the raw source of a real test message rather than trusting a settings toggle. What both headers should look like, and what breaks them, is in our List-Unsubscribe walkthrough.

The plain-text part, because HTML-only mail scores badly. Filters read it, screen readers use it, and a few clients still prefer it. If your platform auto-generates the text half, read what it generated once; the automatic version is sometimes a wall of link URLs.

The rates, because they are the only checks with a hard floor. Under 0.1% complaints and under 2% bounces is the working target. At 0.3% complaints, Google withholds delivery mitigation until you have been back under that line for seven consecutive days, so recovery is measured in weeks. Our own send path halts itself at 0.3% complaints or 2% bounces with no human judgment in the loop, because the judgment call at the moment of a bad send is always to send anyway. The arithmetic behind both numbers is in the bounce-rate piece.

How to use it

Print one per campaign and keep the filled sheets. That sounds fussy until the first send that goes wrong, when the only useful question is what was different this time, and a stack of dated sheets answers it faster than anyone's memory.

For a team, add two lines at the bottom: who ran the checks, and who approved the send. A checklist with a name on it gets read. On a shared account without one, everybody assumes somebody already did item 1.

If the domain is new or coming back after a quiet stretch, run the warm-up schedule alongside this sheet, because item 10 is the only check here that depends on what you did yesterday.

Download the PDF