I’ve seen a bunch of folks panic about some phrasing in Google’s Email sender guidelines. Buried deep in the Message formatting section Google say: Don’t use HTML and CSS to hide content in your messages. Hiding content might cause messages to be marked as spam. Read literally that might cause you to wonder about your use of CSS display:none to switch between different content on...
DNS for white label authentication with SproutDNS
I wrote last year about using “stunt” nameservers for customer subdomain authentication – i.e. dynamically generating all the authentication records needed in DNS for each customer as needed. For example, if you’re an ESP that has customers who can’t or won’t use their own domains and you still need to give them unique subdomains you can generate CNAME records...
Deliverability Summit 2024
We just got back from Amsterdam a couple of days ago, after attending the Deliverability Summit. It may have been the best email event I’ve been to in several years. Not too big, not too small. Plenty of space and time to meet up with folks. Mostly great sessions, a better average than most conferences. Well organized, at a lovely location, with a safe and welcoming environment. Andrew et...
Anatomy of a Received header
When trying to find out why Something Went Wrong during delivery of an email we sometimes want to look at the route by which it was delivered. Did SPF break because of an unexpected forward? Did DKIM break because an intermediate mailserver modified the content of the message? Why did it take nine hours from the mail leaving our ESP to make it to the inbox? Did it really leave our ESP when they...
Looking back, looking forward
Six years ago today I wrote here “Spam isn’t going away“, talking about systemic problems at Google, Cloudflare and Amazon and in India. If I were writing it today I might mention Microsoft, Salesforce and ExactTarget as well as Google, and might stress Amazon less (mostly because all the Amazon spam sites tend to be hidden behind Cloudflare, so you don’t know...
Errors in DKIM records
TXT Records DKIM public keys live in DNS TXT records. A DNS TXT record contains strings of text, and each string is limited to be no more than 255 characters long. Recommended practice for DKIM at the moment is to use 2048 bit keys (1024 bit keys aren’t insecure, but they’re looking a bit weak and 2048 is where folks have mostly decided to move to). But a 2048 bit DKIM key is going to...
One-click unsubscribe
The worst thing about the yahoogle requirements has been their use of the term “one-click unsubscribe”. It’s an overloaded term that’s being used here to mean RFC 8058 in-app unsubscription. That’s a completely different thing to what one-click unsubscription has been used to mean for decades, often in the context of complying with legal requirements around...
Don’t trust Gmail’s Show Original
It’s not always easy to know what the actual headers and body of an email as sent look like. For a long time accepted wisdom was that you could send a copy to your gmail account, and use the Show Original menu option to, well, see the original message as raw text. It turns out that’s not actually something you can trust. I used swaks to send a test message with an extra header to my...
Are you a grown-up sender?
Yes, it’s another yahoogle best practices post. Google divide their requirements for senders into those sending more than 5,000 messages a day, and those sending less. Yahoo divide their requirements into “All Senders” and “Bulk Senders”, and explicitly don’t define that via a volume threshold: “A bulk sender is classified as an email sender sending a...
Yahoogle FAQs
Just a very, very short post with links to the Yahoo and Google requirements FAQs. Given I can’t ever remember them I’m guessing lots of y’all can’t either.
Yahoo: and :