
Pick a font for your website and it works everywhere. Pick a font for your email and you're immediately dealing with a different reality. Fonts in email have never followed the same rules as fonts on the web. Gmail ignores your @font-face declaration. Outlook might swap in Times New Roman. Apple Mail renders your custom typeface perfectly. Your users see three different versions of the same email.
This isn't a new problem, but it's one that trips up even experienced teams because the rules aren't obvious. Email clients don't follow browser standards. They each have their own rendering engine, their own CSS support, and their own opinions about what fonts to show.
This guide covers the practical standard for handling fonts in email: how to build fallback stacks that hold up, where custom fonts actually work, what to do about the clients where they don't, and how to QA all of it before you hit send.
On the web, you declare a font with CSS, point to a hosted file, and browsers load it. It's been reliable for over a decade. Email doesn't work that way.
Every email client is its own rendering environment. The same HTML might pass through Gmail's web interface (which strips <style> blocks and ignores @font-face), Outlook for Windows (which uses Microsoft Word's rendering engine), Apple Mail (which supports most modern CSS), and dozens of others. Each one makes its own decisions about what CSS to keep, what to strip, and what to override.
That fragmentation means your font choice isn't really a design decision. It's a compatibility decision. Three things make it tricky:
@font-face support. Some clients load custom fonts. Others strip the declaration entirely and fall back to their own default.The takeaway: if you want your emails to look intentional across clients, you need to design for what happens when your preferred font doesn't load. Because in many inboxes, it won't.
Look at the guidance from Litmus, Campaign Monitor, Email on Acid, and the support data on Can I Email. The pattern across all of them is the same.
Teams that ship reliable email at scale don't pick one perfect font and hope for the best. They build a fallback-first strategy: start with fonts you know will render everywhere, then layer in custom fonts as a bonus for clients that support them.
Here's what that looks like in practice:
sans-serif, serif, or monospace so you're never leaving the final choice to the client.You'll sometimes hear this called a "web-safe font" strategy. That term comes from old web standards and refers to fonts commonly installed across operating systems. In the email world, the better mental model is email-safe fonts: the subset that reliably renders across major email clients, not browsers.
Support changes over time, so always check a current source like Can I Email before making decisions. That said, the high-level patterns have been stable for years:
| Client family | @font-face support | Notes |
|---|---|---|
| Apple Mail (macOS) | Yes | Solid support since macOS 12.2+ |
| iOS Mail | Yes | Reliable on iOS 10.3+ |
| Gmail (all platforms) | No | Strips @font-face, overrides with its own defaults |
| Outlook for Windows | No | Uses Word's rendering engine, ignores web fonts |
| Outlook for Mac | Yes | Supports @font-face since 2011 |
| Outlook.com (web) | No | Strips custom font declarations |
| Yahoo Mail | No | Strips @font-face |
| Samsung Mail | Partial | Some support on Android 8.0+ |
| Thunderbird | Yes | Full support on desktop |
Where this nets out depends on where your audience reads. Apple Mail (across iPhone, iPad, and Mac) accounts for roughly half of all email opens, about 51% in Litmus's February 2026 data, and it renders custom fonts well. So for a consumer or Apple-heavy audience, a custom font can genuinely reach most of your readers.
But the next-largest client, Gmail, strips custom fonts entirely, and so do Outlook for Windows, Outlook.com, and Yahoo Mail. B2B audiences in particular skew toward those clients. Apple's share is also inflated by Mail Privacy Protection, which pre-fetches content and can log opens no human ever saw. The net: a large share of real readers will see your fallback, not your custom font.
That's not a reason to skip custom fonts. It's the reason your fallback has to look just as intentional as your first choice.
There are three methods for loading custom fonts in email. Each has different levels of client support.
@font-face (recommended for email)This gives you the most control. You declare the font family, weight, style, and source directly, and you can specify the woff2 format, which has the widest support among clients that accept custom fonts.
@font-face {font-family: 'Inter';font-style: normal;font-weight: 400;src: url('https://your-cdn.com/fonts/inter-regular.woff2') format('woff2');}
Then reference it in a fallback stack on every text element:
<td style="font-family: 'Inter', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5;">Your order has shipped.</td>
One caveat: link to a hosted woff2 file rather than base64-embedding the font in your HTML. Embedding inflates the message size quickly, and Gmail clips any message larger than roughly 102KB, which can hide content or the unsubscribe link and break your layout.
<link> and @importBoth of these pull from an external stylesheet, most commonly Google Fonts. Google Fonts are free to use in email, and their licenses explicitly cover it. They're simpler to set up, but have slightly narrower email client support and can introduce loading delays.
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');
If you use either of these, watch out for an Outlook quirk: some versions will fall back to Times New Roman instead of your declared fallbacks. The @font-face method avoids this, which is one reason it's preferred.
A font stack isn't a list of random alternatives. Each entry should be chosen deliberately:
line-height on every text block so spacing stays consistent regardless of which font loads.Here are example stacks for common styles:
| Style | Stack |
|---|---|
| Sans-serif | 'Inter', 'Segoe UI', Helvetica, Arial, sans-serif |
| Serif | 'Lora', Georgia, 'Times New Roman', Times, serif |
| Monospace | 'JetBrains Mono', 'Courier New', Courier, monospace |
Outlook for Windows deserves special attention. It uses Microsoft Word's rendering engine, which means it ignores most CSS you'd expect to work. For fonts specifically, Outlook can default to Times New Roman when it encounters font declarations it doesn't understand.
The standard fix is an MSO conditional comment that forces a safe font stack for Outlook:
<!--[if mso]><style type="text/css">body, table, td, p, a, span {font-family: Calibri, Arial, sans-serif !important;}</style><![endif]-->
Not glamorous. Very effective.
Email typography has one job before all others: be readable. If your subscribers can't comfortably read your content, nothing else about your font strategy matters.
These are the practical defaults that align with WCAG guidance and industry best practices:
line-height explicitly on headings.A few things to avoid:
Use media queries to refine sizing on mobile:
@media only screen and (max-width: 480px) {.heading { font-size: 26px !important; line-height: 34px !important; }.body-text { font-size: 15px !important; line-height: 22px !important; }}
Dark mode is where a lot of careful font work quietly falls apart. Email clients don't handle it the same way, and some rewrite your colors whether you want them to or not.
Three behaviors to know:
@media (prefers-color-scheme: dark) overrides.What this means for fonts:
prefers-color-scheme where it's supported (mainly Apple Mail) to ship a hand-tuned dark palette instead of an auto-inverted one.Dark mode won't change which font loads, but it can wreck how readable that font is. Treat it as part of your font QA, not a separate afterthought.
You don't need a 30-minute QA process for every email. But you do need a repeatable check that catches font issues before they reach inboxes. You can eyeball this in your own inbox, but the reliable way to see every client at once is a preview-testing tool like Litmus or Email on Acid, which render your email across dozens of clients and devices from a single test.
Before every send:
font-family with a fallback stack.Common failures this catches:
Catching these in QA takes minutes. Fixing them after a send takes an apology email.
Everything in this guide boils down to one workflow: pick a font, build a fallback stack, and test it. Courier's notification designer, part of Design Studio, now handles that workflow automatically.
When you design an email in Courier, you choose from a catalog of fonts vetted to render reliably across major clients: 10 web-safe families plus 60 Google Fonts, 70 in total. The designer auto-selects a compatible fallback stack for you, so every email template ships with a proper stack out of the box. No hand-coding font-family declarations, no guessing which fallbacks match your primary font's x-height.
Pick a Google Font and Courier loads it automatically on its own servers, so you don't need any <link> tags, then generates the matching fallback the same way. Clients that support web fonts get your custom typeface. Everyone else gets a matched fallback. Progressive enhancement, handled for you.
And if you have opinions about which fallbacks to use (you probably do), you can override the auto-selection and pick your own from the catalog. You get full control without having to write the CSS yourself. For a look at how this fits into a full send workflow, see our Design Studio and Journeys integration guide.
Sometimes. Apple Mail and iOS Mail render custom fonts well, and they account for around half of all email opens. But Gmail, Outlook for Windows, Outlook.com, and Yahoo Mail strip custom font declarations and fall back to their own defaults. Design for the fallback first, then treat the custom font as an enhancement for clients that support it.
Apple Mail (macOS), iOS Mail, Outlook for Mac, and Thunderbird support @font-face. Gmail, Outlook for Windows, Outlook.com, and Yahoo Mail do not, and Samsung Mail offers only partial support. Always confirm against a current source like Can I Email before you rely on it.
System fonts installed on nearly every operating system: Arial, Helvetica, Georgia, Verdana, Times New Roman, and Courier New. These "email-safe" fonts render consistently across clients. Always end your stack with a generic family (sans-serif, serif, or monospace) so the client never picks the final font for you.
Outlook for Windows uses Microsoft Word's rendering engine, which falls back to Times New Roman when it can't parse a font declaration, especially with <link> or @import. The fix is an MSO conditional comment that forces a safe font stack (for example Calibri or Arial) just for Outlook.
Use 14px as a minimum and 16px as the recommended default for body copy, with a line-height of 1.4 to 1.5. Headings usually land around 28 to 32px on desktop and 24 to 26px on mobile. Set line-height explicitly on every text block so spacing holds up regardless of which font loads.
Yes. Google Fonts are free to use in email and their licenses cover it. Client support is narrower than a self-hosted @font-face file, and some Outlook versions may fall back to Times New Roman, so always pair a Google Font with a solid email-safe fallback stack.
The industry standard for fonts in email comes down to one principle: design for the fallback first, then enhance where you can.
Custom fonts can absolutely strengthen your brand in the inbox. Apple Mail and iOS Mail render them beautifully, and those clients lead email opens. But a large share of your audience still reads in Gmail, Outlook, or Yahoo, where the custom font never loads, and your emails need to look intentional there, too.
Build a solid fallback stack. Set readable defaults for size, line-height, and contrast. Handle Outlook explicitly. Test before you send. That's the standard, and it's the standard because it works. And once your typography holds up, make sure the emails actually land: our guide to email sender requirements covers the authentication rules Gmail, Yahoo, and Outlook now enforce.

Courier Skills: teach your AI agent to build with Courier
Courier Skills is a free, open-source knowledge base that teaches your AI coding agent how to build and debug notifications with Courier: the right primitive for each use case, the exact payload shapes, and the mistakes that produce unhelpful errors. The rebuilt version is smaller, leads every reference with the failure modes, and installs on any agent that reads skills with one command: `npx skills add trycourier/courier-skills`.

The federal texting rule your transportation and logistics software is breaking
A single text to a driving trucker can trigger a federal fine of up to $11,000 for the motor carrier, and your transportation and logistics software is often what sent it. How to design driver notifications that stay on the right side of FMCSA rules.

How Apple's on-device AI works, and what it changes for your users
Apple's 2026 on-device models (AFM 3) are good enough to read, rank, and summarize everything that lands on your phone, locally and for free. Here's how they actually work, in plain terms, and how a model that reads every message before your users do changes what you should send.
© 2026 Courier. All rights reserved.