PRE-SEND CHECKLIST

The pre-send cold email
checklist

What to check before launching any cold email campaign. Eight areas that cover every preventable failure mode — from DNS misconfiguration to broken merge tags.

10 min read

01

Why pre-send checks matter

Most cold email deliverability problems are not caused by spam filters reacting to your copy. They are caused by infrastructure failures that were already present before the campaign launched — broken DNS records, un-warmed inboxes, unverified lists, broken merge tags.

Once a domain takes damage — a spike in bounces, a spam complaint rate above 0.1%, a blacklist listing — recovery takes weeks of reduced sending, active warmup, and monitoring. The inbox reputation that took months to build can be lost in a single bad send.

Pre-send checks do not guarantee a campaign performs well. They guarantee it does not fail for a preventable reason. That is the goal of this checklist: remove every variable that you can control before the first email leaves.

Campaigns should not launch until every critical risk on this list has been resolved. A blocked launch costs you an hour. A damaged domain costs you weeks.

FORGESEND

How this maps to ForgeSend

ForgeSend brings these pre-send checks into the campaign builder as launch-readiness guardrails. Before a sequence can be activated, the campaign builder surfaces DNS health, list quality, suppression coverage, variable resolution, schedule settings, and sending limits as a structured review. Critical risks are treated as blockers rather than passive warnings — a campaign should not go live until they are resolved.

The checklist sections below map directly to what that pre-send review covers. Where a check is best done with an external tool before you import into a campaign, the relevant free tools are linked inline throughout this guide.

See how the pre-send guardrail checklist works →

02

DNS and authentication

DNS authentication is the foundation. Inbox providers check SPF, DKIM, and DMARC before deciding whether to deliver, quarantine, or reject your email. A missing or misconfigured record is a hard blocker — not an advisory warning.

SPF record published and valid. The sending domain has an SPF record that includes your sending provider's IP range. Check with dig TXT yourdomain.com or a DNS lookup tool.
DKIM key configured and propagated. A valid DKIM selector record exists for your sending domain. Your sending platform can confirm which selector it expects. DNS propagation typically takes 15–60 minutes after setup.
DMARC policy published. Even a p=none policy is better than no DMARC at all. Gmail and Yahoo now require DMARC for bulk senders. Move to p=quarantine or p=reject once your authentication is stable.
MX record resolves correctly. If your sending domain cannot receive email, some providers flag it as suspicious. Confirm MX records exist even if you are not using the domain for replies.
No active blacklist listings. Check your sending IP and domain against major blacklists (Spamhaus, SURBL, Barracuda). A single blacklist listing can cause widespread inbox failure.

For a full walkthrough of each record, see the SPF, DKIM, and DMARC explained guide →

Use the free DNS Health Checker to verify SPF, DKIM, DMARC, and MX records across your sending domains, and the Blacklist Checker to scan your sending IP and domain before launch.

03

Inbox health and sender limits

Even with valid DNS records, a cold inbox — one that has not been warmed — will fail. Inbox providers use sending history and engagement patterns to assign a sender reputation score. Sending volume that outpaces warmup destroys that score quickly.

Inbox is actively warming. For any inbox under 90 days old, warmup should be running before campaign sending begins. Do not pause warmup once a campaign is live — warmup runs in parallel, not instead of sending.
Daily send cap is below the warmup ceiling. The campaign's per-inbox daily cap must not exceed the inbox's current warmup send volume. Typical safe starting caps: 20–30 emails/day per inbox for the first 30 days, increasing by 10–20% per week.
Current bounce rate is below 2%. An inbox with an elevated bounce rate from a previous campaign should not be used in a new send until the cause is identified and resolved.
Inbox is not currently paused or flagged. If your sending platform has automatically paused an inbox due to a bounce spike or connection failure, investigate before including it in any rotation.
Multiple inboxes rotating across the campaign. Inbox rotation distributes send volume across connected accounts, reducing per-inbox daily load and limiting blast radius if one inbox encounters a problem.

Warmup and campaign sending are not mutually exclusive

Warmup should continue running while campaigns are active. The goal is to maintain a baseline of warm engagement signals alongside your campaign sends. Stopping warmup the moment you start a campaign removes the engagement floor that protects your reputation.

Use the free Warmup Calculator to plan a safe sending ramp for new inboxes before your first campaign goes live.

04

List verification and risky contacts

Unverified lists are the most common cause of bounce rate spikes. Invalid addresses, deactivated inboxes, and role-based addresses all produce hard bounces that damage sender reputation. Verification should happen before the list enters any campaign, not during it.

All contacts verified before upload. Run every list through email verification before importing into any campaign. Verification checks syntax validity, domain existence, and whether the specific mailbox accepts email (SMTP-level check).
Invalid and unknown-status addresses removed. Hard-invalid addresses should be deleted. "Unknown" or "accept-all" statuses should be treated with caution — cap their share of the send or skip them entirely on new domains.
Catch-all addresses flagged and capped. Catch-all domains accept all email regardless of whether the specific address exists. They produce no hard bounce on delivery but may bounce later. Cap sends to catch-all addresses at 20–30% of any campaign on an unestablished domain.
List source is recent — not older than 90 days. Email addresses decay at roughly 2–3% per month. A list built six months ago has a meaningful number of addresses that have since been deactivated, even if it was clean when originally sourced.
Role-based addresses removed or flagged. Addresses like info@, support@, and admin@ have high spam complaint rates and are checked by spam filters. Remove them unless you have a specific reason to target them.

05

Suppression and unsubscribes

Sending to contacts who have previously opted out, bounced, or indicated they are not interested is both a compliance failure and a deliverability failure. A suppression list must be checked against every new campaign before launch.

Previous unsubscribes are suppressed. Any contact who clicked an unsubscribe link or replied with a stop request must not appear in the current campaign. Suppression should be enforced at the platform level, not manually managed per campaign.
Hard bounces from previous campaigns are excluded. An address that hard-bounced in a prior campaign will hard-bounce again. Do not re-enrol hard-bounce contacts. Remove them permanently from all active lists.
"Not interested" replies are excluded. Contacts who replied negatively in a previous sequence should be added to your suppression list and excluded from future campaigns targeting the same offer or audience.
A functioning unsubscribe mechanism is present in every email. CAN-SPAM requires a working opt-out mechanism in every commercial email. GDPR and CASL have broader requirements. Ensure the unsubscribe link routes to a working page and is processed within 10 business days.
Active deals or clients are suppressed. Contacts currently in a sales conversation or under a live contract should not receive cold outreach. Cross-reference your CRM or deal list before any campaign launches to an overlapping audience.

06

Personalisation variables and fallbacks

Broken merge tags are one of the most visible campaign failures — and one of the easiest to prevent. An email that begins with "Hi {first_name}" or "I noticed {company_name} recently" goes directly into the trash. Every variable needs a fallback value, and every fallback needs to make grammatical sense.

All merge tags resolve for every contact in the list. Before launch, preview the email against a sample of contacts — including contacts with missing optional fields — to confirm no broken variables appear.
Every variable has a fallback value. If first_name is empty, the fallback should be "there" or a neutral substitute, not a blank space or the literal tag. Configure fallbacks at the field level, not just in the template.
Subject line variables are checked separately. Subject line personalisation breaks differently from body copy — a broken subject variable produces a visible failure in the preview pane before the email is opened. Test subject-line variables explicitly against at least five contacts.
Spintax brackets are balanced and valid. If you use spintax for subject line or body copy variation, confirm every {option1|option2} block is correctly closed and contains at least two non-empty options.
Preview email reviewed at minimum for one contact with sparse data. Pick the contact with the fewest filled fields and send a preview. This catches fallback failures that a full-data test would miss.

Use the free Spintax Generator to build and validate variation blocks before importing them into your sequence steps.

07

Sequence timing and daily caps

Timing and volume controls prevent two distinct problems: sending at hours when recipients are not at their desks (which reduces reply rate), and sending more than your inboxes can safely handle (which raises bounce rate and flags your domain).

Sending windows match the recipient's working hours. Configure sending windows to match the timezone and working hours of your target audience. For B2B outreach, Tuesday–Thursday, 8am–11am local time consistently outperforms weekend or late-night sends.
Step delays are set with enough time to evaluate replies. The minimum recommended delay between sequence steps is 2–3 business days. Shorter delays compress the reply window and can feel aggressive to recipients. Longer delays — 5–7 days — work well for later steps.
Per-inbox daily cap is not set above the warmup ceiling. If an inbox is sending 40 warmup emails per day, its campaign cap should not exceed 30–40 additional emails per day. Exceeding the warmup ceiling on a new inbox dramatically raises bounce risk.
Auto-pause on reply is enabled. Contacts who reply should be automatically removed from the sequence. Continuing to send follow-up steps to a contact who has already responded generates complaints and wastes capacity.
Auto-pause on bounce is enabled. If a contact generates a hard bounce, the sequence should stop immediately and the address flagged for suppression. Manual review before re-activation prevents repeat bounces on the same address.

Use the free Send Time Optimiser to find the best send windows for your target audience's timezone before locking in your schedule.

08

Final review before you click send

Once the technical checks are done, a final human review catches the things automation cannot — copy that sounds wrong, CTAs that ask for too much, and structural issues that reduce reply rate.

Sequence copy proofread for each step. Read every step out loud. This catches awkward phrasing, repeated words, and CTAs that ask the recipient to do more than one thing at once. One ask per email.
From name is consistent with the persona you are building. If step 1 is from "Sarah at Acme" and the reply-to routes to a generic inbox, the disconnect damages trust on reply. Confirm from name, reply-to, and signature all point to the same person.
A test email has been sent and reviewed in a real inbox. Send a test to a Gmail account and a Microsoft 365 account. Check: does the formatting hold? Does the unsubscribe link work? Does the email display correctly on mobile?
Tracking settings match your reporting goals. If you are using click tracking, confirm the tracking link does not trigger link-shortener spam flags. If you are not tracking opens (recommended for deliverability), confirm tracking pixels are disabled.
Campaign is scheduled to start at an appropriate time. Do not start a campaign at 11pm or on a Friday afternoon. Schedule the first send to drop when recipients are actively at their desks.

Run your copy through the free Spam Checker and Subject Line Tester before finalising your sequence. If you need a starting structure for any step, the Email Template Generator can help.

QUICK REFERENCE

Full checklist summary

Print or bookmark this list. Work through it before every campaign launch.

DNS & Authentication

SPF record published and valid
DKIM key configured and propagated
DMARC policy published (p=none minimum)
MX record resolves correctly
No active blacklist listings on sending IP or domain

Inbox Health & Sender Limits

All inboxes actively warming
Per-inbox daily cap below warmup ceiling
Current bounce rate below 2% per inbox
No inboxes flagged or paused from prior sends
Inbox rotation configured across the campaign

List Verification

All contacts verified before import
Invalid and hard-bounce addresses removed
Catch-all addresses flagged and volume capped
List sourced within the last 90 days
Role-based addresses removed

Suppression & Compliance

Previous unsubscribes suppressed
Hard bounces from prior campaigns excluded
Negative reply contacts excluded
Functioning unsubscribe link in every email
Active clients and open deals suppressed

Personalisation Variables

All merge tags resolve for every contact
Every variable has a fallback value
Subject line variables tested separately
Spintax blocks are balanced and valid
Preview reviewed for a sparse-data contact

Timing & Caps

Sending windows match recipient working hours
Step delays are at least 2 business days
Per-inbox cap does not exceed warmup ceiling
Auto-pause on reply is enabled
Auto-pause on bounce is enabled

Final Review

Sequence copy proofread for each step
From name consistent with reply-to and signature
Test email reviewed in Gmail and Microsoft 365
Tracking settings match reporting goals
Campaign scheduled to launch at an appropriate hour

Run these checks automatically before every launch

ForgeSend brings pre-send guardrails into the campaign builder so operators can review launch risks before a campaign goes live. DNS, list quality, suppression, variables, schedule settings, and sending limits are treated as launch-readiness checks rather than after-the-fact reports.

See how the guardrail checklist works →ForgeSend deliverability overview →
Start free trial →
← Back to all guides