SENDUNE / Guides

Gmail and Yahoo sender rules on AWS SES.

Each rule, line by line, and who meets it: AWS, your DNS, or your email.

Sign up free or Sign in

Since February 2024, Gmail and Yahoo require every sender to authenticate their email and keep spam complaints below 0.3%. Bulk senders (Gmail counts more than 5,000 messages a day to Gmail accounts) must also have DMARC, an aligned From domain, and one-click unsubscribe on marketing email.

Rules for every sender.

RuleWho meets it on AWS SES
SPF or DKIMYour DNS: Easy DKIM (3 CNAME records)
Forward and reverse DNS (PTR) for sending IPsAWS, on its sending IPs
TLS when sendingAWS, whenever the receiving server supports it
Well-formed messages (RFC 5322)AWS and your email
Spam rate below 0.3%Your list and your email

Extra rules for bulk senders.

RuleWho meets it on AWS SES
SPF and DKIM (Yahoo asks for both)Your DNS: DKIM, and SPF on a custom MAIL FROM subdomain
DMARC, at least p=noneYour DNS: one TXT record at _dmarc
From domain aligned with SPF or DKIMYour DNS: send From the domain you verified with DKIM
One-click unsubscribe on marketing emailYour email: two headers, plus a visible link
Unsubscribes honoured within 2 days (Yahoo)Your system

The DNS part, record by record: SPF, DKIM and DMARC for AWS SES.

One-click unsubscribe, exactly.

Every marketing email carries these two headers (the standard is RFC 8058):

List-Unsubscribe: <https://example.com/unsubscribe/abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Gmail and Yahoo then show their own Unsubscribe button beside your name. When a reader presses it, the provider sends a POST request to that address, and your server must unsubscribe the reader at once, with no page to click through.

Do not unsubscribe on a plain visit

Spam filters open every link in an email to inspect it. If a GET of your unsubscribe address unsubscribes on the spot, filters unsubscribe your readers by accident. Act on the POST; let a GET show a page with a confirm button.

Keep the visible link too

Gmail asks for a clearly visible unsubscribe link in the body as well as the headers.

Transactional email is different

The unsubscribe rule covers marketing and subscribed messages. A password reset or a receipt needs no unsubscribe header.

On AWS SES, you add the two headers yourself when you send through the API or SMTP, and you build the address that receives the POST.

Your spam rate.

The 0.3% is the rate Gmail shows in Google Postmaster Tools: readers who press "Report spam". Add your domain there (one DNS TXT record) to see it. AWS has its own, lower line: it reviews an SES account at a 0.1% complaint rate. See AWS SES bounce and complaint rates.

How to check one email.

Send a marketing email to a Gmail address, open it, and choose Show original. Look for PASS beside SPF, DKIM and DMARC, and for the two List-Unsubscribe headers in the message source.

Sources: Gmail email sender guidelines, Yahoo sender best practices.