Deliverability
Cold emails landing in spam: find the cause
Gmail names the reason behind many rejections in an SMTP code. Match the code to its fix, then use per-mailbox rates to find where the problem sits.
Article
When cold email lands in spam, the instinct is to rewrite the copy. Often the cause sits earlier: a missing record, a list full of dead addresses, or one mailbox that picked up a run of complaints. The fastest route to the cause is to find out which of three outcomes you are looking at.
A message can be delivered to the spam folder, deferred with a temporary 4xx code, or rejected with a permanent 5xx code. Google's own table of sender requirements lists the same enforcement for most of them: temporary or permanent failure codes, or spam foldering. This post gives you the codes to read, the list and message practices providers name, and a per-mailbox table that shows whether the trouble is one inbox or all of them.
Three outcomes, three starting points
Look at what your sending logs say before you change anything.
- Rejected (5xx) or deferred (4xx) with a code: the receiver told you which rule failed. Read the code in the table below and fix that record or setting.
- Accepted but filed as spam: the receiver judged the sender or the message. Look at the list, the complaint rate and the message itself.
- Bounced as an unknown user: the address does not exist. That is a list problem, covered in the verification post.
Gmail rejection and deferral codes, with the fix
Google sends a rejection code and a reason when it turns a message away for failing the sender guidelines, and shows the same information in Postmaster Tools. The codes below are quoted from Google's own list; the fixes follow the setup steps Google points to.
| Code | What Google says it means | What to check |
|---|---|---|
| 4.7.23 or 5.7.25 | The sending IP has no PTR record, or the PTR record does not match the forward DNS entry for the IP | Reverse DNS for the sending server, and the matching A or AAAA record |
| 4.7.27 or 5.7.27 | SPF did not pass for the message | One SPF record per domain that lists every sender, and the ten-lookup limit |
| 4.7.30 or 5.7.30 | DKIM did not pass for the message | Signing is switched on for the sending domain and the public key is published under the right selector |
| 4.7.31 | The domain has no DMARC record, or the record states no policy | Publish a DMARC record; a policy of none is accepted |
| 4.7.32 | The From domain is not aligned with the authenticated SPF or DKIM domain | Make the visible From domain match the domain that SPF or DKIM authenticates |
| 4.7.29 or 5.7.29 | The message was not sent over a TLS connection | Require TLS on the connection to Gmail |
| 4.7.28 | Gmail typically uses this code when a sender exceeds its quota | Stop for at least 10 minutes, then resume from one connection and add connections one at a time |
| 5.7.26 | Google lists this as a possible rejection for messages that are not authenticated | SPF, DKIM and DMARC for the sending domain |
When there is no error and the mail still goes to spam
Without a code, the signal comes from recipients and from the message. Google says the user-reported spam rate has a graduated effect on delivery, that rates above 0.1% already hurt inbox delivery for bulk senders, and that 0.3% or higher is worse. It also says that if messages from a domain are frequently reported as spam, later messages are more likely to be marked as spam.
The same guidelines name practices that invite those reports and that filtering looks at:
- Buying addresses, or mailing people who never signed up. Google and Yahoo both say not to.
- Subject lines that fake a reply or forward, such as Re: or Fwd: on a first message.
- Hidden content made with HTML and CSS, or links whose destination a reader cannot tell.
- Names or symbols meant to suggest the sender has been verified when it has not.
- No easy way to unsubscribe. Google notes that an easy opt-out can improve open rates, click-through rates and sending efficiency.
Find the mailbox that is hurting you
A domain reputation problem and a one-mailbox problem look the same in a dashboard average. Split the numbers by mailbox before you decide. The table is a fictional week for four mailboxes on two domains. The bounce rate is bounced divided by sent, and the complaint rate is complaints divided by messages delivered to the inbox, both from your own logs.
Compare the rows with each other and with your own previous weeks. Both mailboxes on the second domain bounce far more than the first domain's mailboxes, which points at the list those mailboxes were given, while the last mailbox also shows the highest complaint rate, so it deserves a pause and a look at its recent messages first.
| Mailbox | Sent | Bounced | Bounce rate | Inbox delivered | Complaints | Complaint rate |
|---|---|---|---|---|---|---|
| amara@outreach-one.example | 420 | 8 | 1.9% | 380 | 1 | 0.26% |
| ben@outreach-one.example | 410 | 9 | 2.2% | 372 | 1 | 0.27% |
| chen@outreach-two.example | 400 | 47 | 11.8% | 301 | 2 | 0.66% |
| dana@outreach-two.example | 395 | 52 | 13.2% | 296 | 5 | 1.69% |
| All four | 1,625 | 116 | 7.1% | 1,349 | 9 | 0.67% |
Fix in this order
The order matters because the early steps are cheap and the later ones take weeks to show up in reputation.
- Pause the affected mailbox, not the whole account, while you read the codes and the recent complaints.
- Confirm SPF, DKIM, DMARC alignment and reverse DNS for the sending domain. Fix any record a code points at.
- Verify the list that mailbox was sending to and remove undeliverable and risky addresses. Add everything that bounced or complained to the suppression list.
- Resume at a lower volume. Google advises reducing volume when bounces or deferrals appear and increasing slowly afterwards, and notes that it can take time for an improved spam rate to show up in how mail is classified.
- Rewrite the message only after the steps above, and remove anything in the practices list.
Where ColdMeetings fits
ColdMeetings sets up sending domains, mailboxes and the SPF, DKIM and DMARC records, checks addresses before an import, and keeps a do-not-contact list. Bounces and complaints suppress the address, and a preflight check before a campaign starts looks for a mailbox on a domain with verified SPF, DKIM and DMARC records. It is software and an API for running the operation; the reputation of your domain follows who you mail and what you send, and new mailboxes ramp up with real, low-volume sends.
Questions
- How do I know whether Gmail is the problem or every provider is?
- Split your bounce and complaint numbers by recipient provider as well as by mailbox. If only Gmail shows codes, read Google's table. Yahoo publishes its own requirements and a complaint feedback loop, so compare against that page for Yahoo recipients.
- Is a spam folder the same as a block?
- No. A block comes with a rejection code. Spam foldering is a delivery that the receiver filtered, and Google lists it as one of the enforcement outcomes for senders that do not meet its guidelines.
Keep reading
Deliverability guide8 min read
Deliverability checklist: auth and lists
What Gmail and Yahoo ask of senders, how SPF, DKIM and DMARC fit together, and a clean-list routine, with a worked SPF and complaint-rate example.
Data quality5 min read
How to verify an email before you send
The layers of an email check, what each can and cannot prove, how SMTP behaves, and how to handle deliverable, risky and unknown results with a worked cost.
Cold email guide5 min read
Cold email metrics: formulas and tables
Every cold email metric as a formula with its denominator, computed from one fictional campaign, so you can rebuild each number from your own export.
Put it to work
Pages in the product and the tools that go with this guide.
Sources
- Google, Email sender guidelines: https://support.google.com/a/answer/81126, read 2026-10-19
- Google, Email sender guidelines FAQ: https://support.google.com/a/answer/14229414, read 2026-10-19
- Yahoo, Sender requirements and recommendations: https://senders.yahooinc.com/best-practices/, read 2026-10-19
- RFC 7208, Sender Policy Framework (SPF): https://www.rfc-editor.org/rfc/rfc7208, read 2026-10-19
- RFC 7489, DMARC: https://www.rfc-editor.org/rfc/rfc7489, read 2026-10-19
Tell us what you sell and who buys it
What you sell
Who buys it
The button opens a draft in your own mail app. Nothing is sent from this page.
- Software companies
- Agencies
- Service businesses