It's 2017 and we are still stuck with HTML tables to create rich emails. Why? It seems reasonable to leverage the hard work behind the modern browser engines (ie. blink), when all you want is to render an HTML document properly.
Why don't email clients use modern rendering engines?
4.4k views Asked by AudioBubble At
1
There are 1 answers
Related Questions in HTML
- How to store a date/time in sqlite (or something similar to a date)
- How to use custom font during html to pdf conversion?
- Storing the preferred font-size in localStorage
- mp4 embedded videos within github pages website not loading
- Scrimba tutorial was working, suddenly stopped even trying the default
- Is there any way to glow this bulb image like a real light bulb
- With non-graphical maps in Leaflet, zoomDelta doesn't work
- What can I do to improve my coding on both html and css
- Uncaught TypeError: google.maps.LatLng is not a constructor at init (script.js:7:13)
- Bootstrap modal not showing at the desired position on a web page when the screen size is smaller
- Displaying a Movie List on a Website Using Jinja2 and Bootstrap
- How to redirect to thank you page after submitting a Google form embedded into a Google Site?
- Storing selected language in localStorage
- Fences (parenthesis, braces) in HTML and MathML
- Understanding Scroll Anchoring Behavoir
Related Questions in HTML-EMAIL
- Next.js: How to properly set image URL into HTML so image shows in email template
- Can we achieve z-index like functionality without using z-index for html email template?
- Python: Convert Markdown to html with Codeblocks like in stackoverflow
- How to make my Outlook fallback not show for my embedded video in HTML email?
- Preview text with subject in subject line
- QR code won't render when using react-email with NestJS
- How to remove spaces at the top and bottom of an HTML email?
- External Email html blocked in script php if HTML
- Limit height of a cell inside a table for an email in the Outlook desktop app
- OL Office 365 Dark for Windows Background Behind Text
- HTML: Outlook not rendering proper mail
- How to handle long words In email newsletter design for yahoo and AOL mail
- Outlook for Android "no app installed to open this" but it's just a link
- For HTML email development: How can I assign a different font-size for mobile and desktop views?
- Tracking pixel in HTML email not triggering API endpoint when opened
Related Questions in EMAIL-CLIENT
- Email to 365 group using graph
- split domain routing email
- Why do I keep getting this error using the gmailr package? (I attached code below the error)
- Implementing / registering an email sending client for windows
- How do I read emails from specific outlook folder in my Delphi application?
- How should an IMAP4rev2 client associate untagged responses for multiple pipelined IMAP commands?
- Issues with rendering html emails
- How sparkpost edits email "to" and "cc" header?
- Django - How to solve error "SIGPIPE: writing to closed pipe/socket/fd"
- Problem with sending file via socket in Base64
- HTML Email Not Stacking in Outlook for iOS
- How to get Azure Email Communication Service Connection String
- How to use geologica font in Send grid email template?
- How to fetch only the "text/plain" and "text/html" parts of an email message?
- Do web based email clients (e.g., Gmail) respect link prefetch?
Related Questions in BLINK
- Get Skia Commands from Chromium DisplayItemList
- How to Create an Image from HTML Content with Specific Height Using Puppeteer Sharp
- Implementing Dynamic Metro Map Line Highlighting with jQuery
- how to stop cursor from blinking on Chrome
- How to add siren sound to Blink Amazon camera security system?
- Coding of images in Blink archive
- .elf file getting deleted in eclipse cube ide for embedded c/c++
- How browser engine store Css values and using it?
- SVG animation (blinking) inside of animation (blinking)
- Vscode not giving the option to open remote repository
- Recent Chromium memory leak on large HTML canvases?
- undefined symbol:private: static struct blink::WrapperTypeInfo
- How to make a widget blink in Qt with a delay of one second?
- Firefox vs Chrome: different behaviour of "width: fit-content;" Why? Who is right?
- cannot create hex elf files with cmakelists
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Update: Since this question was closed and my answer resembles a blog post, I published an updated version on Medium.
Email clients use rendering engines appropriate for displaying emails. This is not always in step with displaying web pages.
Only a small % of email users care about HTML/CSS support. Think email marketers and developers. The vast majority of email users simply want a simple, secure way of sending and receiving rich text messages with other people. That’s what email clients are designed for.
Even more advanced users don’t often cite good HTML/CSS support as a top concern. Recent innovations give us a little insight as to what folks are frustrated with regarding email clients: help managing incoming messages, more security, less SPAM, and overall ease of use.
No one cares if it takes developers a long time to use
<tables>and inline CSS to create an email. When it comes to changing how emails are rendered… “If it’s not broke, why fix it?” When email clients actually do update rendering, it’s rarely news outside of the tech community. Few people care.Consider Desktop Outlook, which typically comes bundled with programs like Word and Powerpoint. All these programs have a similar interface and display output. If you can author a Word document, there’s almost no learning curve in writing an email in Outlook. That’s huge for a lot of people. In all likelihood, Outlook’s rendering engine wasn’t chosen based on it’s ability to render an HTML document properly, yet the product is still considered a success. Because desktop Outlook and doesn’t get automatic updates, old versions (that we have to code for) tend to hang around.
Fun fact: Outlook 2000-2003 rendered email using whatever version of Internet Explorer was installed locally the computer to render email (usually Internet Explorer 6).
Gmail is another example. While Gmail has pretty good HTML/CSS support, it didn’t support external CSS files until late 2016. Gmail (unofficially) cited security as one of the reasons. I don’t know what keeps the Gmail team up at night, but I bet it’s not how email developers can’t optimize their email layouts. I bet it’s security. And so that’s where the gmail dev work gets focused.
Overall email clients do their job relatively well. Since HTML/CSS support matters to so few people, changing it is likely not often a priority for product teams that make email clients.
However, things are trending in the right direction. Gmail and Yahoo! app began supporting media queries in most of their products. Outlook on iOS got a huge facelift including good markup support. New email clients that crop up (Mailbox, Nylus. Polymail) generally have good HTML/CSS support compared to the web. Rarely does support go backwards. The majority of clients based on market share use “modern rendering engines”.
Additionally we can always reference our own email analytics. Don’t have many Outlook subscribers? Then code an email using
<div>s. Don’t need to support every mobile client? Then usemedia-queries.