Cold email deliverability comes down to a short list of things you can check.
This guide is a checklist in three parts. Part one covers what to verify before you send. Part two covers what to set at launch. Part three is the weekly review, with signals for when to pause. For background on domains, warm-up and daily volume, read Cold email deliverability. For the term itself, see the glossary entry on deliverability.
Who this is for
This guide is for you if you are about to send a first cold campaign, or if a running campaign is getting few replies and you suspect spam placement. It assumes you send from mailboxes you control, through a sending tool.
It is also for the person who approves sending. Someone has to decide how much volume is acceptable and when to stop. That decision is easier when the numbers are written down before launch, so the guide treats approval as a control point and not a formality.
If you are asking "why are my cold emails going to spam," work through the checks below in order. Most are lookups in your DNS, your sending tool or your list. A few, such as reading the message as a stranger and the placement test, are judgment calls.
Steps
Part 1: Before you send
1. Publish SPF and DKIM for the sending domain, then DMARC in step 2.
Gmail and Yahoo require SPF or DKIM for all senders, and SPF, DKIM and DMARC for bulk senders. [[1]](#sources) Google's own wording is more specific: "email senders who send more than 5,000 messages per day to Gmail accounts must meet the requirements in this section. Set up SPF and DKIM email authentication for your domain." [[2]](#sources)
Google's wording puts the line for bulk sending at 5,000 messages a day. [[2]](#sources) If you send less, still set up all three records; DMARC is step 2.
SPF has a hard limit. RFC 7208 says "SPF implementations MUST limit the total number of those terms to 10 during SPF evaluation". [[3]](#sources) Count what your record pulls in before you add another tool that sends on your behalf.
DKIM, in the words of RFC 6376, "permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message." [[4]](#sources) In practice, the sending tool or mailbox provider gives you a record to publish. Publish it, then confirm the domain signs outgoing mail.
2. Publish DMARC.
RFC 7489 describes DMARC as a way for "a mail-originating organization" to "express domain-level policies and preferences for message validation, disposition, and reporting". [[5]](#sources) Yahoo's best practices say: "Publish a valid DMARC policy with at least p=none". [[6]](#sources)
Microsoft has said that "For domains sending over 5,000 emails per day, Outlook will soon require compliance with SPF, DKIM, DMARC." [[7]](#sources) That statement was checked on 2026-10-22, and Microsoft says "soon," so check its current page before you rely on the timing.
The glossary entry on DMARC covers the policy terms. If your records are set up through Mailgun, Mailgun SPF, DKIM and DMARC setup walks through it.
3. Send from a domain that is not your main domain.
Keep cold email off your main domain. Outlevo's managed mailboxes are built around this. Outlevo buys the sending domains, sets up the DNS, creates the mailboxes and warms them up, "so you never touch your main domain." [[8]](#sources) You choose the domains Outlevo proposes and the sender names. [[8]](#sources)
Plans set how many you get. Builder includes 1 domain and 2 mailboxes. Growth includes 2 domains and 4 mailboxes. [[8]](#sources)
If you bring your own mailboxes, Smartlead sends the emails from the mailboxes in your Smartlead account. [[9]](#sources) Choose a separate domain for those mailboxes yourself.
4. Let every mailbox finish warm-up.
A new managed mailbox sends nothing until it is warm. That takes at least 14 days, usually about 3 weeks. [[8]](#sources) Do not look for a way around it. If a mailbox is not ready on launch day, move launch day.
5. Confirm the authentication check is recent.
With the Smartlead integration, every mailbox must be connected and warmed up before a campaign sends. Its domain must also have SPF, DKIM and DMARC checked in the last 7 days. [[9]](#sources) If you use another sending setup, adopt the same rule. Re-check the records within a week of launch, and again after any DNS change.
6. Verify the list.
Verify addresses before they go into a campaign. In Outlevo, email verification costs 1 credit per address. [[10]](#sources)
If you use a separate verifier, ZeroBounce lists a Freemium plan at $0 a month with 100 validation credits. [[11]](#sources) Its Pay as You Go option starts at $39 for validating 2,000 email addresses. [[12]](#sources) Both were read on 2026-10-26, so confirm on the vendor's page before you buy. Outlevo also keeps a page on ZeroBounce pricing, plans and integrations.
Remove anything the verifier flags before you upload.
7. Read the message as the recipient will.
Open the draft in a mailbox that is not yours. Check that the sender name, subject and first line make sense to a stranger. Check that every link goes where you expect. No figure in this guide tells you what content a mailbox provider will filter, so rely on your own read of each message.
Part 2: At launch
8. Write the approval note before the first send.
In Outlevo, nothing is sent outside a policy that a person approved. [[13]](#sources) Policies set who can be contacted, on which channels, how often and with what budget. [[13]](#sources) That makes the approval step the right place to record your sending limits.
Before you approve, write down four things:
- The daily volume per mailbox you are willing to send at launch.
- The bounce level at which you will pause.
- The spam-complaint level at which you will pause.
- Who has the authority to pause.
This guide does not give you numbers for the first three. Take them from your mailbox providers' current published guidance and from your own sending history. Whatever you choose, write it down before you send, because numbers chosen after a bad week tend to be generous.
9. Start small and let the policy hold the line.
Every external action is checked against the approved policy before it runs, and recorded in a ledger. [[13]](#sources) You do not need to police the limits by hand. You do need to set them low enough that a bad list or a broken record shows up before it does lasting damage.
If you raise a limit later, change it in the policy and record why. The ledger then shows what ran under which limit.
10. Know where the stop controls are.
Kill switches pause a campaign, a channel or the whole workspace at once. [[13]](#sources) Find them before launch, not during an incident. Decide which one you would use for each kind of problem. Pause a single campaign for a bad list. Pause the whole workspace for a broken DNS record.
11. Make sure the right person hears about problems.
Outlevo can send Telegram alerts for hot leads, approvals, problems that need you and credit alerts. [[14]](#sources) Every alert also appears in the app. [[14]](#sources) Each person links their own Telegram. [[14]](#sources) If you want the person who approves sending to see problems quickly, have them link it.
Part 3: Every week
12. Pull bounces, replies and unsubscribes.
With Smartlead connected, Outlevo reads sent, reply, bounce, unsubscribe and category-change events back by webhook. [[9]](#sources) That gives you one place to look at weekly counts. Set a fixed time each week and review the same figures in the same order.
Record at least these for each campaign:
- Emails sent.
- Bounces.
- Unsubscribes.
- Replies.
13. Compare against your own pause numbers.
Hold the week's bounce and complaint figures up against the numbers in your approval note. If either is past the line, pause first and investigate second.
14. Check mailbox health and warm-up state.
Outlevo checks each managed mailbox's warm-up state and reputation daily. [[8]](#sources) Open that view weekly and look for any mailbox that differs from the others. One mailbox in poor health is a reason to stop sending from it. It is also a reason to look for what that mailbox sent that the others did not.
15. Run a placement test.
Use whichever placement test you already trust. Run it on the same schedule every week, from the same mailboxes, so results can be compared week to week. A single result tells you little. A drop between two weeks tells you something changed.
16. Read the reply rate in context.
Published benchmarks differ because they measure different things. Belkins' 2026 study of 7.5M B2B emails sent in 2025 found that 0.45% of emails get a reply across industries. In that study, reply rate is replies divided by emails sent. [[15]](#sources) [[16]](#sources) Smartlead's benchmark says 0.74% of contacts reply for the median sender. [[17]](#sources)
Use these as a rough frame, not a target. One counts emails and the other counts contacts, so do not mix them in one comparison. Your own trend, week over week, matters more than either figure.
What to check
Copy this list into your approval note.
Before sending
- SPF, DKIM and DMARC are published for the sending domain, and the SPF record stays within the limit of 10 terms that SPF evaluation counts. [[3]](#sources)
- The sending domain is separate from your main domain. [[8]](#sources)
- Every mailbox has finished warm-up. [[8]](#sources)
- The authentication check is less than 7 days old if you send through Smartlead. [[9]](#sources)
- The list is verified and flagged addresses are removed.
- A person has read the message as a stranger would.
At launch
- A person has approved the policy.
- Launch volume per mailbox, bounce pause level and complaint pause level are written down.
- You know which kill switch covers which problem.
- The approver receives alerts.
Weekly
- Bounces, replies and unsubscribes are pulled and recorded.
- Figures are compared to the pause numbers in the approval note.
- Mailbox health is reviewed for outliers.
- A placement test is run on the usual schedule.
- Reply rate is compared with last week's, not only with a benchmark.
Signals to pause
Pause the campaign, or the channel, when any of these shows up:
- A bounce or complaint figure past the line you wrote down.
- A mailbox whose health differs from the rest.
- A placement result that dropped since last week.
- A DNS change that was not followed by a fresh record check.
- Replies that fall while sends hold steady.
Pause the whole workspace if you think the cause is shared, such as a broken record on the sending domain. Then fix the cause, re-check the records, and restart at a lower volume than you paused at. Record the new limit in the policy.
Next step
Take the checklist above and fill in the four blanks in the launch note before you send anything. If you also want your first list to reflect the customers you actually win, the free ICP assessment reads up to 5 public pages of your website. [[18]](#sources) It returns facts labeled as verified observations or AI inferences, plus up to 5 experimental segment hypotheses. [[18]](#sources)
If you sell developer tools, Outbound for developer tools covers the list side. To see how approval, policies and kill switches fit together, read How Outlevo works. [[13]](#sources) For the sending setup, see the pages on Smartlead and managed mailboxes. [[9]](#sources) [[8]](#sources) Plan limits and credit costs are on the pricing page. [[10]](#sources)
Sources
- Google email sender guidelines
- Google: Email sender guidelines
- RFC 7208: Sender Policy Framework (SPF)
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures
- RFC 7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC)
- Yahoo: Sender best practices
- Microsoft: Outlook requirements for high-volume senders
- Managed mailboxes integration
- Smartlead integration
- Outlevo pricing
- ZeroBounce: pricing
- ZeroBounce: pricing
- How Outlevo works
- Telegram integration
- Belkins, cold email response rates (2026)
- Belkins, cold email response rates (2026)
- Smartlead, average cold email reply rate (2026)
- Free ICP assessment