Skip to main content
Emailens
Home

Email development guides

How to build an email that looks the same in every inbox, and reaches it. Grouped by the job in front of you.

Build an HTML email

From the first table to the preview text: the parts every email needs.

HTML Email: How to Code One That Works in Every Inbox

HTML email code that holds up in Outlook, Gmail and Apple Mail: a starter template you can copy, the CSS every client supports, and each step of the build.

Read the guide

Responsive Email Design: Layouts Without Media Queries

Media queries don't reach every inbox, so an email that only stacks with them breaks on some phones. Fluid, hybrid and responsive layouts compared, with code.

Read the guide

How to Inline CSS for Email (and What Can't Be Inlined)

Some inboxes drop the style block and every rule in it. How inlining works, what it can't move, when your framework already does it, and an inliner in the browser.

Read the guide

Email Fonts: Why Outlook Shows Times New Roman and the Fix

Most email clients ignore web fonts, and Outlook can swap yours for Times New Roman. Safe font stacks, @font-face setup and the fix we verified.

Read the guide

Yahoo Mail Ignores Your Font? Remove the Quotes

Yahoo Mail drops an inline font-family that quotes a font name, like 'Courier New', and shows its own font. Tested in real inboxes, with the one-line fix.

Read the guide

Email Preheader & Preview Text: HTML Code and Examples

Without a preheader, the inbox shows “View in browser” next to your subject. The hidden preheader HTML, the spacer that stops leaks, and what to write.

Read the guide

Email Banner Size and Image Widths That Hold in Every Inbox

The email banner size and image widths that stay sharp on phones and hold their width in Outlook: 2x source files, the width attribute, and safe formats.

Read the guide

How to Send an HTML Email from Outlook or Gmail

Paste HTML into Outlook or Gmail and the code arrives as text. The methods that work in Outlook Classic, new Outlook and Gmail, and what each one drops.

Read the guide

Mailto Links in HTML: Subject, Body, CC and Encoding

How to write a mailto link in HTML: several recipients, a subject, a body, cc and bcc, and the RFC 6068 encoding rules that keep each value intact.

Read the guide

Emoji in Email: Subject Lines, HTML and What Breaks

Emoji in a subject line need an RFC 2047 encoded header; in HTML, a UTF-8 declaration. Copy-paste examples, and why emoji look different per inbox.

Read the guide

Dark Mode Email: How Gmail, Apple Mail and Outlook Recolour It

Some clients apply your prefers-color-scheme CSS, others recolour the email themselves. What each does in dark mode and how to keep text and logos readable.

Read the guide

Target Gmail and Outlook with CSS: u + .body, [data-ogsc], MSO

Apply CSS in one email client only: Gmail's u + .body, Outlook's [data-ogsc] and MSO comments, Samsung and Proton wrappers, and which old hacks stopped working.

Read the guide

Email Accessibility: 8 Fixes for Screen Readers and Contrast

Make HTML emails work with screen readers: lang, role=presentation on layout tables, alt text, 4.5:1 contrast, link text, and testing with VoiceOver and NVDA.

Read the guide

HTML vs Plain Text Email: Why You Send Both, and How

Every HTML email should carry a text/plain part. Why a missing or auto-generated one hurts deliverability, who reads it, and how to write a good one.

Read the guide

Outlook

Outlook Classic renders with Word. What it drops and how to work around it.

Gmail and Apple Mail

What Gmail strips and clips, and what Apple's privacy proxy changes.

React Email, MJML, Tailwind and Figma

Where each framework's output breaks in real inboxes.

Test and debug

Catch the break before it ships, and trace it when it does.

Deliverability and authentication

SPF, DKIM, DMARC, BIMI and the habits that keep you in the inbox.

SPF, DKIM, DMARC & BIMI: The Developer's Email Authentication Guide

What each email authentication protocol does, how to configure DNS records, common failures, and how to verify your setup.

Read the guide

BIMI: How to Get Your Logo in Gmail, Apple Mail and Yahoo

What BIMI needs before an inbox shows your logo: DMARC at enforcement, an SVG Tiny PS file, a VMC or CMC, and one DNS record. Then check it.

Read the guide

SpamAssassin Score: What It Means and How to Lower It

A SpamAssassin score is the sum of every rule a message hits; 5.0 is the default spam threshold. How to read the report and fix the rules you control.

Read the guide

DMARC Policy Modes: p=none vs Quarantine vs Reject

The p= tag is the heart of DMARC. Here's what each of the three policy modes actually does, how to move between them safely, and when to make the jump.

Read the guide

How DMARC Applies to Subdomains (and the sp= Tag)

Attackers love unguarded subdomains. Here's how DMARC's sp= tag works, how policy inheritance plays out, and how to lock down domains you don't even send from.

Read the guide

How to Read a DMARC Report (Without Losing Your Mind)

DMARC aggregate reports arrive as dense XML. Here's what every field means, how to tell passing mail from spoofing, and how to act on what you find.

Read the guide

How to Warm Up a New Sending Domain (and What to Check First)

A new sending domain has no history, so inbox providers watch the first weeks closely. What to verify before the first send, a ramp you can follow, and the numbers that tell you to slow down.

Read the guide

Hard vs Soft Bounces: What the SMTP Codes Mean and What to Do

A hard bounce is a permanent 5xx refusal, a soft bounce a temporary 4xx one. How to read the codes, which addresses to stop mailing, and why slow delivery is often a soft bounce you never saw.

Read the guide

Should Transactional and Marketing Email Use Separate Subdomains?

Why password resets and newsletters should not share a sending domain, a subdomain layout that works, and how SPF, DKIM and DMARC apply to each subdomain.

Read the guide

Newest first instead? See the blog.