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.

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

Toggle to mobile:

Mobile preview — 320px viewport

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

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

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 "  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
Advanced: rendering engines, MSO conditional comments, CSS support matrix

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:

<!--[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:

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.

Related articles

11 条评论

7 条评论

  1. emma.whitaker
    Confirming the A/B-test sample size guidance. We were testing too small for too long — switching to bigger batches over fewer cycles was the right call.
  2. v.petrova.ru
    Saved this. Going to use as a refrence for our next campaign cycle.
  3. femi.adeyemi
    Our open rate jumped from 18% to 24% after we restructured around these principles. Took about 6 weeks to see the full lift
  4. tnovak.cz
    The personalization-beyond-first-name section is what I needed. Most articles talk about it abstractly... 👀
    1. admin
      Appreciate it. If anything in this needs updating, ping us — we revisit articles every few months
  5. cmendoza.mx
    Any guidance on how this interacts with the time-of-day send optimization? Conflicts with our scheduled-blast pattern.
    1. admin
      depends on your version. 5.x supports it natively; 4.x needs a config flag set in `.env`. we'll note this caveat in the article on the ext pass.
  6. hung.nguyen.it
    Pro tip from our team: build campaign templates with a single CTA. Multiple CTAs always underperform in our data.
  7. linhvu.dev
    How do you handle this when your campaign list spans multiple language audiences? We have EN + ES + FR subscribers in one campaign.
    1. admin
      We tested this with up to 1M subscribers on a $40/mo VPS. Past that you start needing query optimization. Below that, the defaults are fine.
    2. admin (已编辑)
      Currently a manual step. There's a feature request tracking it on the repo if you want to +1.

More in Email Marketing