As most of my clients use Mailchimp I thought I’d write about the pros, cons and limitations of one of the most popular email service providers (ESP's).
I started out using Mailchimp for a client around 3 years ago and I loved the simplicity of it back then. It's really moved on since then and is a great place to start for many new businesses as it's affordable (free in the beginning) and very easy to use.
The strongest selling point for potential users is, in fact, it's ease of use and UI. That said, from a developer point of view it's a potential minefield and you'll soon be pulling your hair out after a few hours of trying to understand what Mailchimp does to your code.
1. Media Queries within Media Queries
As we all know, or at least developers will know, media queries are the life and blood of our responsive emails. Take those away and we're right back to hybrid and fluid layouts. Now I know what you're thinking... "Mailchimp must support media queries?" and while they do, there are some things you should note when using them in a custom template.
Mailchimp likes to wrap each media query in its very own media query so something like this...
Turns into this once sent...
Why is this an issue you ask? Well, it's not, for the most part. But you should be aware of chaining selectors amongst other things can have varied results even in iOS. Sometimes it causes Gmail to break and show the desktop version scaled down due to the @media within an @media problem.
What's the easiest way around this? I code my media queries separately to prevent Mailchimp changing them. This alleviates the issue entirely.
2. Merging Style Tags
Now sometimes we like to separate our style tags in order to fix, yet again, Gmail encountering an error and ignoring the whole block. For example the attribute selector for the android margin issue. Gmail doesn't like attribute selectors, so what does it do? It ignores the whole block. So we savvy email developers realised by putting it inside its own style tag we can trick Gmail into just ignoring that redundant rule. Great right?
Well no, because Mailchimp merges all the style blocks into a single style sheet. The android margin bug is just an example but you can run into this a lot when looking at your renders in Gmail from Mailchimp. I always start with the style block if it's not appearing responsive.
The fix? If you can, add a style sheet in the body as long as the client your targeting allows for that. This works for the android bug but again, just be aware of this when coding custom template.
3. The Inliner can add a lot of weight
This is turned on by default and ideally, if you've custom coded your template, you want to switch that off. You can find out how here.
Why is this an issue? It's not unless you're closing in on the 102kb for Gmail, at which point your message will be clipped and important info such as the unsubscribe info could be hidden. If you have global styles in the head, for example, this fix for <th>'s in SFR.
It will inline this into every single <th>. Likewise, a table with border: none; will inline creating much heavier code. Now we should all be using inline styles as you know but now and again we do have reset styles (overwrite the client's style sheet defaults) that will ultimately be inlined and can often add 15-30kb depending on how many tables you've used.
So if you're emails are nice and light anyway, this probably doesn't apply to you. But if you're emails are heavy in the code it's good to take note.
4. Progressive Enhancement is not as easy
We all love interactive email, it was the hype of 2017! But be aware, never promise a client that uses Mailchimp fancy interactive email campaigns. It just isn't possible.
Here is a list of tags they remove, and no, for now, there's nothing we can do about it.
• HTML 5 attributes including video and audio as well as some accessibility tags like role="presentation". Although as pointed out by @cosssmin on the email geeks slack channel, they do have video and audio merge tags, however, they come with default styling and we, as creatives, don't get much control over how they appear other than styling the parent.
• <marquee> tags, I recently discovered this one as a client asked for them and they are stripped away leaving the text centred and taking the styling from the containing