# Email Client Rendering — What Breaks and How AcelleMail Helps You Catch It

> Gmail strips your CSS, Outlook ignores rounded corners, Apple Mail dark-mode inverts your logo. This guide is the practical "what to check in AcelleMail before launching" — Preview tool, plain-text fallback, A/B testing — and the technical why-it-happens reference in the collapsible section.

- Canonical URL: https://acellesend.com/kb/articles/understanding-email-client-rendering-differences
- Author: Sofia Lindqvist, Email Marketing Editor
- Category: Email Marketing — Campaign creation, templates, A/B testing, personalization, scheduling
- Content type: tutorial · Difficulty: intermediate
- Tags: Acellemail
- Published: 2026-03-16 · Last updated: 2026-08-15
- Reading time: 7 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

## Why this matters before you Send

Every email client renders HTML with its own engine, with its own quirks. The same campaign that looks pristine in Gmail web can have collapsed columns in Outlook 2016, an inverted logo in Apple Mail dark mode, and stripped link styling in Yahoo. You don't need to memorize every quirk — you need a verification routine that catches breakage *before* the campaign launches.

This article walks the three checks AcelleMail's UI surfaces for you.

## Check 1: AcelleMail's built-in Preview

Open any campaign → **Preview** button. The Preview pane renders the email with AcelleMail's own engine and your merge-tag substitutions:

![Preview — desktop view, computed merge tags](https://acellesend.com/plugins/acelle/landing/images/help/kb/preview/01-campaign-preview.png)

Toggle to mobile:

![Mobile preview — 320px viewport](https://acellesend.com/plugins/acelle/landing/images/help/kb/preview/02-mobile-preview.png)

What Preview tells you:

- **Layout integrity** at 600px desktop and 320px mobile
- **Merge-tag computed values** using a sample subscriber from the list
- **Image loading** at the URLs you've used (won't catch hotlink-block at the *recipient*'s firewall, but catches dead public URLs)

What Preview can NOT tell you:

- How Outlook 2016 desktop renders this specific HTML (different engine entirely — Word's rendering engine)
- How Apple Mail's dark mode inverts your colors
- How Gmail's clipping behaviour ("[Message clipped]") behaves at 102KB

For those, use Check 2 + 3.

## Check 2: Send-test to real client accounts

Every campaign settings panel has a **Send test** button. Send to addresses you control across multiple clients:

- One Gmail address (open in browser AND in the Gmail mobile app)
- One Outlook.com address (open in browser AND in the Windows Outlook app if available)
- One iCloud/Apple Mail address (open on iPhone or in macOS Mail with dark mode toggled)
- One Yahoo address (browser)

Take ~5 minutes to open each one. Note what's different from what Preview showed. The most common surprises:

| Client | Common surprise | Fix |
|---|---|---|
| Outlook desktop (2007-2019) | Multi-column blocks collapse to single column; rounded corners drop; some shadows missing | Use tables for layout (AcelleMail builder does this); accept that some visual polish drops in Outlook |
| Gmail mobile app | `<style>` blocks in `<head>` removed | AcelleMail inlines critical styles automatically — for hand-coded HTML, run an inliner |
| Apple Mail iOS dark mode | Logo on transparent background inverts to white-on-dark, looks broken | Use solid-background PNG, or version-specific `<picture>` with dark-mode variant |
| Gmail web (long emails) | "Message clipped" cut-off above ~102KB | Keep total HTML under 100KB; reduce inline image data-URIs |
| Yahoo Mail | Some `<style>` rules silently stripped | Inline styles on every block (AcelleMail builder defaults to this) |

## Check 3: A/B test the riskiest variant

If you're launching a campaign with a layout you're unsure about (new template, heavy redesign), use AcelleMail's A/B testing to ship the conservative version to 80% and the experimental version to 20% — verify engagement metrics across both before committing:

![A/B variants tab](https://acellesend.com/plugins/acelle/landing/images/help/kb/ab-test/03-variants-tab.png)

For purely-visual A/B (vs. subject-line A/B), the open rate won't differ — but the **click-through rate** will, and that's the signal you want. If the experimental variant has materially lower CTR, the rendering broke in some client and recipients couldn't or didn't engage.

The post-send A/B report shows the delta:

![A/B test results report](https://acellesend.com/plugins/acelle/landing/images/help/kb/ab-test/05-ab-report.png)

## Common UI patterns that survive everywhere

| Goal | Survives-everywhere pattern |
|---|---|
| Two columns of content | Use AcelleMail's 2-col block — auto-stacks on mobile |
| Rounded buttons | Solid-color rectangular buttons; rounded shows in most, not Outlook desktop — acceptable degrade |
| Custom font | System font stack fallback first; web font second — `font-family: 'Inter', -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif` |
| Dark-mode safe logo | Solid-background PNG, OR `<picture>` with `prefers-color-scheme` source |
| Bold callout box | Background-color on a table cell with padding; works everywhere |
| Embedded video | Use a video poster image + linked play button → goes to a landing page (NEVER embed HTML5 `<video>` in email — only ~30% of clients render it) |

## Common UI signals + fixes

| Symptom from test send | Likely cause | UI fix in AcelleMail |
|---|---|---|
| Columns side-by-side on mobile (Outlook iOS) | Hard-coded fixed widths in HTML | Use the builder's 2-col block (responsive by default) — don't paste raw HTML with `width="300"` columns |
| Plain text version reads "&nbsp;&nbsp;Click here" garbage | Auto-extracted from HTML, no manual plain-text | Builder → toggle **Plain text version** → write a real plain version |
| Email is clipped in Gmail | Total HTML > 102KB | Builder → check size in *Code view* footer; reduce inline images (host externally) |
| Logo background turns navy in dark mode | Transparent PNG against light bg | Re-export PNG with solid white background |
| Some recipients see broken layout, others fine | Multiple Outlook versions render differently | Test send to an Outlook 2016 + Outlook 365 web — confirm both; if 2016 breaks but 365 is fine, accept the degrade (declining install base) |
| Tracking pixel doesn't fire | Recipient client blocks images (common in corporate) | Open rate underreports; focus on click-rate as the real engagement signal |

<details>
<summary><strong>Advanced: rendering engines, MSO conditional comments, CSS support matrix</strong></summary>

The reason email rendering varies so much is that every major client uses a different engine:

| Client | Rendering engine | Notable quirks |
|---|---|---|
| Apple Mail (macOS / iOS) | WebKit | Best CSS support, full dark mode inversion |
| Gmail web | WebKit-based Blink + Gmail rewriter | Strips `<style>` in `<head>` if size > limit; removes `position`; rewrites image URLs through googleusercontent CDN |
| Gmail mobile app | Same engine, stricter rewriting | Often inlines `<style>` differently than web |
| Outlook desktop 2007-2019 | **Microsoft Word's rendering engine** | No CSS3, no `border-radius`, no `background-image` on most elements |
| Outlook 365 web / desktop new | Edge / Chromium | Modern, similar to web rendering |
| Outlook.com web | Webkit + Microsoft rewriter | Modern, with quirks |
| Yahoo Mail | Custom Yahoo engine | Strips some `<style>` rules silently |

**MSO conditional comments** target Outlook desktop specifically:

```html
<!--[if mso]>
<table role="presentation" width="600" cellpadding="0" cellspacing="0">
  <tr><td>
<![endif]-->

  <!-- Modern clients render this; Outlook desktop renders the MSO block above + below -->
  <div style="max-width: 600px;">Your content</div>

<!--[if mso]>
  </td></tr>
</table>
<![endif]-->
```

This pattern wraps modern responsive markup with Outlook-only table fallback. The AcelleMail builder generates this pattern automatically for column blocks.

**CSS property support matrix** (from caniemail.com, summarized):

| Property | Apple Mail | Gmail web | Gmail iOS | Outlook desktop | Yahoo |
|---|---|---|---|---|---|
| `display: flex` | ✅ | ✅ | Partial | ❌ | Partial |
| `border-radius` | ✅ | ✅ | ✅ | ❌ | ✅ |
| `box-shadow` | ✅ | ✅ | ✅ | ❌ | ✅ |
| `background-image` (on body) | ✅ | ✅ | ✅ | Partial | Partial |
| `@media` queries | ✅ | ✅ | ✅ | ❌ (uses MSO) | ✅ |
| `prefers-color-scheme` (dark mode) | ✅ | Limited | ✅ | ❌ | ❌ |
| Web fonts | ✅ | ✅ | ✅ | ❌ | Limited |

**Litmus / Email on Acid** for paid client testing. Both offer:

- 90+ real client/device screenshots in 30-60 seconds
- Spam filter testing across Gmail/Outlook/Yahoo
- Code analyzer flagging known anti-patterns
- API + Slack integration for CI

For high-volume senders the cost (~$80-$200/month) typically pays back within one campaign — catching a layout break across 100k recipients before send saves more than the subscription.

**MJML compiler** outputs Outlook-safe HTML automatically. If you're maintaining a hand-coded email template library, switching to MJML eliminates ~80% of cross-client breakage:

```bash
mjml my-template.mjml -o compiled.html
# compiled.html is ready for AcelleMail Source mode
```

**ESP-side rendering** — AcelleMail's PHP send pipeline doesn't transform your HTML beyond merge-tag substitution + DKIM signing. The HTML that arrives at the receiver is the HTML you authored. Any rendering surprise is the receiving client's engine, not AcelleMail's transmission.

</details>

## Related articles

- [Email template design — best practices](https://acellesend.com/kb/articles/email-template-design-best-practices)
- [Personalization beyond first name — advanced merge tags](https://acellesend.com/kb/articles/personalization-beyond-first-name-advanced-merge-tags)
- [A/B testing email campaigns — best practices](https://acellesend.com/kb/articles/ab-testing-email-subject-lines-for-better-open-rates)
- [Why are my emails going to spam folder](https://acellesend.com/kb/articles/why-are-my-acellemail-emails-going-to-spam-folder)

---

## Related articles

- [Email Template Design Best Practices — Using AcelleMail's Builder Right](https://acellesend.com/kb/articles/email-template-design-best-practices): Single column on mobile, alt text on every image, preheader you actually wrote, button width tested in real clients — most "best practice" lists are abstract. This one walks the AcelleMail builder showing where each setting lives and what to verify in Preview before you Send.
- [How to Write Email Copy That Converts — The Practical Framework](https://acellesend.com/kb/articles/how-to-write-email-copy-that-converts): You've got the list, the template, the schedule. What goes in the body? This guide is the practical copywriting framework — what to say, how to structure it, how to verify it lands. Less theory, more "type this, not that."
- [A/B Testing Email Subject Lines for Better Open Rates](https://acellesend.com/kb/articles/ab-testing-email-subject-lines-for-better-open-rates): A/B testing the subject lifts open rates 10-30% sustainably. AcelleMail's built-in A/B feature splits your list, picks the winner automatically, ships the winning variant to the rest. This guide walks the setup + the discipline that makes the test meaningful.
- [Your First Email Campaign in AcelleMail — The 7-Step Walkthrough](https://acellesend.com/kb/articles/creating-your-first-email-campaign-in-acellemail): A guided walk through AcelleMail's campaign builder from "New campaign" button to "Launch" button. Subject + recipients + template + schedule + confirm — visual flow + the decisions at each step.
- [Campaign Scheduling and Timezone Optimization in AcelleMail](https://acellesend.com/kb/articles/campaign-scheduling-and-timezone-optimization): When you send a campaign at "9am" — whose 9am? Yours, your subscribers'? AcelleMail's scheduler defaults to your account timezone. This guide walks the UI + timezone-aware patterns + send-time optimization.
