B
Briefed

Why your automated newsletter lands in spam (and real fixes)

7 min read · Last updated July 8, 2026

You built a script or an n8n flow that sends a daily digest, tested it on yourself, and it worked. Then you added a second recipient, or moved it to a fresh domain, and everything started landing in spam - or worse, silently disappearing. This is not bad luck. It is the predictable result of how Gmail, Outlook and Yahoo score inbound mail, and self-built senders fail almost every one of their checks by default.

How inbox providers actually score your mail

There is no single spam score. Each provider runs a pipeline that combines several signal families, and a hard failure in any one of them can sink a message that is perfect otherwise:

  • Authentication: does the mail pass SPF and DKIM, and do those align with the From domain per your DMARC policy? Since early 2024 Gmail and Yahoo treat authentication as a requirement for bulk senders, not a bonus.
  • Domain and IP reputation: how much mail has this domain and this IP sent before, over what timeframe, and how did recipients react? A brand-new domain or a residential IP has no history, which providers treat as risk.
  • Engagement signals: opens, replies, moves-to-inbox versus deletes-without-reading and spam reports. Mail that nobody interacts with drifts toward the spam folder over weeks, even if it authenticated fine on day one.
  • Content and structure: broken HTML, link-shortener URLs, image-only bodies, missing List-Unsubscribe headers. Content matters less than people think, but it is the tiebreaker when reputation is thin.

The important consequence: you cannot fix spam placement by rewording the subject line. If authentication or reputation is broken, no amount of content tweaking helps.

SPF, DKIM and DMARC - what each one actually does

SPF: which servers may send for your domain

SPF is a TXT record on your domain listing the IP ranges allowed to send mail claiming to be from it. The receiving server checks the connecting IP against that list. Example record for a domain sending through Amazon SES:

SPF record (TXT on yourdomain.com)
yourdomain.com.  TXT  "v=spf1 include:amazonses.com -all"

The -all at the end says mail from any other IP should hard-fail. One catch: SPF checks the Return-Path (envelope) domain, not the visible From header, which is why SPF alone does not stop spoofing - that is what DMARC alignment is for.

DKIM: cryptographic proof the mail was not altered

DKIM signs each message with a private key held by your sending service; the public key lives in DNS under a selector. The receiver verifies the signature, proving the message came from an authorized signer and was not modified in transit. Your email service generates the key pair and gives you the record to publish:

DKIM record (TXT on selector._domainkey.yourdomain.com)
selector1._domainkey.yourdomain.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

DMARC: the policy that ties it together

DMARC tells receivers what to do when SPF or DKIM fail or do not align with the visible From domain, and where to send aggregate reports. Gmail and Yahoo now require at least p=none for bulk senders. Start there, read the reports, then tighten:

DMARC record (TXT on _dmarc.yourdomain.com)
_dmarc.yourdomain.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com; adkim=r; aspf=r"

How to verify all three

Check your records from the command line
dig TXT yourdomain.com +short
dig TXT selector1._domainkey.yourdomain.com +short
dig TXT _dmarc.yourdomain.com +short
  • Send a test to the address mail-tester.com gives you - it grades SPF, DKIM, DMARC, blocklists and content in one report.
  • Register your domain in Google Postmaster Tools to see the domain reputation and spam-rate numbers Gmail itself uses. Keep the reported spam rate below 0.3 percent; below 0.1 percent is the safe zone.
  • In Gmail, open a received message and use Show original - it displays SPF, DKIM and DMARC pass/fail verdicts directly.

Why Gmail-plus-app-password and fresh domains fail

The two most common DIY setups are sending through a personal Gmail account via SMTP with an app password, or standing up a fresh domain and blasting from it on day one. Both fail for structural reasons:

  • Personal Gmail SMTP is built for person-to-person mail. Automated repetitive sends to multiple recipients trip Google's own abuse heuristics, you cannot set custom List-Unsubscribe headers, daily limits are low, and if your script runs from a home connection any direct SMTP elsewhere comes from a residential IP - which most providers reject or heavily penalize on sight.
  • A fresh domain has zero sending history. Reputation systems treat no-history as high-risk because that is exactly what spammers use: cheap new domains, burned and replaced. Going from 0 to 200 mails per day looks like a spam run, not a newsletter.
  • Volume spikes hurt even established domains. Reputation is partly a function of consistent volume over time; irregular bursts from a cron job that failed for a week and then sent a backlog are a classic negative signal.
  • Gmail and Yahoo bulk-sender requirements (in force since 2024) demand an authenticated domain with SPF, DKIM and DMARC, a one-click unsubscribe via RFC 8058 List-Unsubscribe-Post headers, and a spam complaint rate under 0.3 percent. A DIY SMTP script typically satisfies none of these.

The practical fix: a transactional email service

Resend, Postmark, Amazon SES and SendGrid solve the infrastructure half of the problem. You still bring your own domain reputation, but they handle IP reputation, correct SMTP behavior, bounce processing and standards-compliant headers. The setup flow is roughly identical everywhere:

  1. Add your domain in the provider's dashboard. It generates the exact DKIM (and usually SPF/Return-Path) DNS records for you.
  2. Publish those records at your DNS host and wait for the provider to verify them - usually minutes, up to 48 hours with slow DNS propagation.
  3. Add a DMARC record yourself (providers rarely do this for you). Start with p=none and a rua reporting address.
  4. Set List-Unsubscribe and List-Unsubscribe-Post headers on every send. Most SDKs expose this as a headers option; some providers add it automatically for broadcast-type sends.
  5. Ramp volume gradually. If you eventually want to send 1,000 mails per day from a new domain, start with 20-50 per day to your most engaged recipients and roughly double weekly. Cold domains that jump straight to full volume get filtered.
One-click unsubscribe headers (RFC 8058)
List-Unsubscribe: <https://yourdomain.com/unsub?token=abc123>, <mailto:unsub@yourdomain.com>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

SES is the cheapest at scale but gives you the least guardrails - you can destroy your own reputation efficiently. Postmark and Resend are stricter about what they let you send, which is a feature when you are learning.

Debugging checklist when mail still goes to spam

  1. Send to mail-tester.com and fix everything below 9/10 - it names the exact failing check.
  2. Open the message in Gmail with Show original and confirm SPF, DKIM and DMARC all show PASS with the same domain as your From header.
  3. Check Google Postmaster Tools for domain reputation (should be Medium or High) and spam rate (must be under 0.3 percent).
  4. Check whether your domain or sending IP is on a blocklist via mxtoolbox.com/blacklists.
  5. Verify List-Unsubscribe and List-Unsubscribe-Post headers are present in the raw message source.
  6. Review your volume graph: any spikes, gaps or sudden jumps in the last 30 days are suspects.
  7. Confirm every recipient actually opted in. Even a handful of people who forgot they subscribed will file spam reports, and complaint rate is the fastest way to lose a domain.
  8. If reputation is already damaged, cut volume to only your most engaged recipients for 2-4 weeks and rebuild from there. There is no faster reset button.

How Briefed sidesteps all of this

Everything above is table stakes if you operate your own sending pipeline - and it is ongoing work, not a one-time setup. Briefed exists for people who want the personalized digest without becoming a part-time deliverability engineer. It sends every issue from its own established infrastructure (built on Resend) with SPF, DKIM and DMARC already configured and warmed, uses double opt-in so complaint rates stay low, and includes one-click unsubscribe on every issue - the exact requirements Gmail and Yahoo enforce.

The service itself is a personalized AI newsletter: you describe your interests in free text, Claude writes each issue individually from public web sources on your schedule (daily, every 2 days or weekly), and you refine it by replying in plain language. It is 100 percent free - no paid tier, no ads, no card - so trying it costs nothing but the double opt-in click.

Don't want to maintain this?

Briefed does the same thing - a personalized, AI-written newsletter on your schedule - free, in about 30 seconds, with deliverability and refinement handled for you. See the full DIY vs Briefed comparison for honest numbers.

No credit card. No app to install. Unsubscribe with one click, anytime.

Questions

Can I fix spam placement by changing my subject lines or content?

Rarely. Content is a weak signal compared to authentication and domain reputation. If SPF, DKIM or DMARC fail, or your domain has no sending history, content tweaks will not move the needle. Fix authentication first, then reputation, then look at content.

How long does it take to warm up a new sending domain?

Plan for 4-8 weeks of gradual, consistent volume before a new domain can reliably reach hundreds of inboxes per day. Start with a few dozen sends per day to engaged recipients and increase roughly weekly. There is no legitimate shortcut - services selling instant warmup via fake engagement risk getting your domain flagged.

Is p=none DMARC enough, or do I need p=quarantine or p=reject?

p=none satisfies the current Gmail and Yahoo bulk-sender requirement and gets you aggregate reports. Move to p=quarantine and eventually p=reject once your reports show all legitimate mail passing alignment - tightening too early can get your own mail rejected.

Why does my newsletter reach Gmail but not Outlook, or vice versa?

Providers score independently. Outlook leans harder on IP reputation and its own SNDS data, Gmail on domain reputation and user engagement. Register with both Google Postmaster Tools and Microsoft SNDS to see each provider's view of you separately.

More guides