TL;DR
- Authenticate your domain: SPF, DKIM and DMARC. Gmail and Yahoo require them for bulk senders.
- Only email people who asked: double opt-in for signups, consent attestation for imports, and no cold lists.
- Make leaving easy: a one-click unsubscribe header (RFC 8058) plus a visible link.
- Stop mailing bounces and complainers immediately, and watch clicks rather than opens.
- Fondoo builds all of this in, and agents can't skip it.
Deliverability isn't a mystery. Mailbox providers watch two things: whether you're really who you say you are, and whether people want your email. Get both right and most newsletters land fine.
Part 1: Prove who you are (SPF, DKIM, DMARC)
What each one does
- SPF lists which servers may send mail for your domain. It's checked against the envelope sender (the MAIL FROM domain).
- DKIM adds a cryptographic signature to each message, tied to a public key in your DNS.
- DMARC tells receivers what to do when SPF or DKIM fail and aren't aligned with your visible From domain, and where to send reports.
Since February 2024, Google and Yahoo require bulk senders to have SPF, DKIM and DMARC, with the From domain aligned. Even below "bulk" volume, it's the baseline.
Setting it up in Fondoo
setup_sending_domain({ siteId, domain: "mail.yourbusiness.com" })
check_sending_domain({ siteId, domain: "mail.yourbusiness.com" })
On hosted Fondoo (Amazon SES), setup_sending_domain returns the exact DKIM records and a custom MAIL FROM subdomain (MX and SPF records) to add at your DNS provider. check_sending_domain refreshes the status, and marketing sends from your domain stay off until it passes.
For DMARC, start with monitoring and tighten later:
_dmarc.yourbusiness.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourbusiness.com"
After a few weeks of clean reports, move to p=quarantine, then p=reject if everything legitimate is aligned.
If you use your domain for regular mailboxes too, get_email_dns_records generates mailbox records with a merged SPF record and checks you're under SPF's 10-lookup limit. Two separate SPF records on one domain is a common, silent failure.
Part 2: Only email people who asked
Double opt-in
Someone signs up, gets a confirmation email, and only becomes a subscriber after clicking it. That keeps typos, bots and spite signups off your list. It costs a few percent of signups and saves your sender reputation.
In Fondoo, newsletter sends only go to confirmed subscribers. Unconfirmed addresses are never included in a broadcast.
Importing an existing list
import_subscribers({ siteId, csv: "email\nana@example.com\n...",
consentAttestation: "These people signed up on our site's waitlist form between March and October 2026." })
Imports need a written consent attestation. Each row is validated, role addresses like info@ or sales@ are rejected, duplicates are removed, and imported contacts get a double opt-in email. When an agent imports more than 1,000 rows, the import waits for owner approval.
No cold email
Fondoo doesn't allow cold outreach. Purchased or scraped lists drag down deliverability for everyone on shared infrastructure, and they're the fastest way to get a domain blocklisted.
Add your postal address
Laws like CAN-SPAM require a physical postal address in commercial email. Fondoo asks for it once with update_email_settings and won't send newsletters without it.
Part 3: Make leaving easy
Unsubscribing should take one click, and people who can't find the link press "Report spam" instead, which hurts much more.
Every Fondoo marketing email includes:
- a visible unsubscribe link, and
- the
List-UnsubscribeandList-Unsubscribe-Post: List-Unsubscribe=One-Clickheaders from RFC 8058, so Gmail, Yahoo and others can show their own unsubscribe button.
Google and Yahoo require one-click unsubscribe for bulk senders and expect requests to be honored within two days. In Fondoo they take effect immediately.
Part 4: Listen to bounces and complaints
- Hard bounces (address doesn't exist) are suppressed automatically. A global hard-bounce list protects every sender on the platform and can't be overridden by one workspace.
- Spam complaints reported back through feedback loops suppress that address automatically.
- Sends recheck suppression at dispatch, not only when the broadcast was scheduled.
list_suppressions shows your suppressed addresses. An owner can remove a workspace suppression with remove_suppression and a written reason, for example after someone re-subscribes.
Google's guidance is to keep the spam rate reported in Postmaster Tools below 0.3%, and ideally under 0.1%. If complaint or bounce rates spike, Fondoo pauses sending and requires an explicit review before resuming. That pause is annoying for a day and saves the domain for a year.
Part 5: Send, then measure the right thing
The agent writes the issue; Fondoo handles the rest:
create_newsletter_issue({ siteId, subject: "What we shipped in November", markdown: "..." })
send_newsletter({ siteId, issueId, segment: "all" })
get_newsletter_status({ siteId, issueId })
create_newsletter_issueturns links into tracked links and publishes a web archive of the issue on your site.send_newsletter(orschedule_newsletterwith a time) snapshots confirmed, unsuppressed recipients and queues delivery. Broadcasts can't be undone, so when an agent calls it, the send waits for your approval.get_newsletter_statusreports delivery state.
About opens: Apple Mail Privacy Protection preloads images, so open rates are inflated and unreliable. Fondoo treats clicks as the trusted engagement signal and ties them to signups and revenue.
A pre-send checklist
- SPF, DKIM and DMARC pass, and the From domain is aligned.
- The list is confirmed opt-in, with no imported cold contacts.
- Postal address and unsubscribe link are in the footer.
- The subject line matches the content.
- Links point to your own domain.
- Plain, readable layout; not one big image.
- Send at a steady cadence. Big gaps followed by a huge blast look suspicious.
FAQ
Do I need DMARC if I only send a few hundred emails?
Google and Yahoo's strict requirements apply to bulk senders (5,000 or more messages a day to their users), but every sender benefits. A p=none record costs nothing and gives you reports.
Can I import my Mailchimp list?
Yes, as a CSV with a consent attestation. Imported contacts get a double opt-in email before they receive newsletters. Native Mailchimp, Kit and Beehiiv connections are coming soon.
How many emails are included?
Each site includes 5,000 emails a month. After that it's $0.60 per 1,000. See /pricing.
Can my AI agent send a newsletter on its own?
It can draft and schedule one, but broadcasts from an agent wait for owner approval, and only confirmed, unsuppressed subscribers receive it.
Why can't I see open rates?
You can see them, but we don't trust them because of Apple Mail Privacy Protection. Clicks are the reliable signal.
Turn release notes into a newsletter your subscribers actually get: see posting to 21 networks for the social side, then start your 7-day trial for $0.



