Mjml: Email Blank in Outlook 2016 for Desktop When Sending Through Intercom

Created on 5 Jun 2017  ยท  16Comments  ยท  Source: mjmlio/mjml

Description:
The bug renders a blank email on Outlook for Windows when sent through Intercom.

Reproducing the issue:

  1. Export any MJML custom or premade template to HTML
  2. Import template into Intercom
  3. Send template using Intercom

Notes:

There is code in the source of the email. But the email itself displays completely blank.

E.g.,
mjml intercom email.txt

Most helpful comment

Bruno here from the support team at Intercom. ๐Ÿ‘‹ We received a customer report of a problem with our HTML editor serializer that is removing some conditional browser comments, and thus, causing some issues with the message rendering on some Outlook versions.

We are on it though! And will work to ensure we get a fix deployed as soon as possible. I looked carefully into the rendered code by MJML and our editor, and I didn't spot any problem on MJML's side, so I don't think there's any action needed from your side.

Feel free to ping me if you have any questions about this though!

All 16 comments

Thanks for the detailed issue @Dakota-Gearhart ๐Ÿ‘Œ

Interesting, it seems Intercom alters the HTML (for example by adding a <style> declaration in the body of the email, in addition to the pixel tracker at the end).

Could you please attach the MJML of the template as well as the version of MJML used (or the original HTML before importing in Intercom) so we can do a diff on the original HTML and the one altered by Intercom?

Thanks!

Sure, here's the MJML
two column mjml layout.txt

I'm running the latest version of MJML windows app on my machine. Here are the details:

MJML App v2.3.0
MJML v3.3.2

I got the same issue with one of the example templates. Template Model

I managed to display the content of my email deleting conditional browser comments.
Like :
<!--[if mso | IE]> </td></tr></table> <![endif]-->
I guess it's not an MJML issue anymore, rather an Intercom issue.

Would be really interesting to see the HTML after import to Intercom vs the
HTML straight after render with MJML.

Can't being to debug otherwise.

Kind Regards,

:----------------------------:
Dale McConnell

On 12 June 2017 at 15:20, Guillaume BONHOMMEAU notifications@github.com
wrote:

I managed to display the content of my email deleting conditional browser
comments.
Like :

โ€”
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mjmlio/mjml/issues/702#issuecomment-307786877, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKxLOJxpaaBCAjSiYPtSVVY6jYGxmp68ks5sDTsLgaJpZM4Nv0j-
.

Bruno here from the support team at Intercom. ๐Ÿ‘‹ We received a customer report of a problem with our HTML editor serializer that is removing some conditional browser comments, and thus, causing some issues with the message rendering on some Outlook versions.

We are on it though! And will work to ensure we get a fix deployed as soon as possible. I looked carefully into the rendered code by MJML and our editor, and I didn't spot any problem on MJML's side, so I don't think there's any action needed from your side.

Feel free to ping me if you have any questions about this though!

Very glad to hear this is being worked on @kmossco. Any idea on when to expect a fix?

We still don't have an ETA for when we can fix this, but I got an update from our team. It seems that this is working as we intend, in that we are stripping the IE conditionals in email templates as it leaves us open to XSS injections.

This is why we don't have a ETA yet, as it will be laborious to allow the IE conditionals and mitigating any security risks, and we had to de-prioritize that work. However, in the mean time a way to get this to work is to separate the MSO and the IE conditionals because our current serialiser logic is:

  • Strip if IE conditionals
  • Strip the IE part of the if IE | MSO conditionals, making it only a if MSO conditional
  • Leave if MSO conditionals intact

Hopefully that helps a bit, but happy to answer any questions about this.

EDIT: Changed the middle paragraph to make it less confusing.

I suspect I am having the same issue, Just sent an email via intercom and getting reports from users on a blank email.

Can anyone give me some guidance on how I would manually separate the MSO and IE conditionals, perhaps an example using Doshibu's snippet above?

Edit: looking at this again, would simply changing [if mso | IE] to [if mso] suffice? (Apologies for the n00b questions, I don't have a mechanism to send from intercom to outlook to test this on my side)

@kmossco

So if you use if MSO and/or if IE, but don't use if IE | MSO we won't remove any MSO conditional.

I think mso + ie allows compatibility on Outlook 2000 & 2003, so I don't think this is really a good solution.

We still don't have an ETA for when we can fix this, but I got an update from our team. It seems that this is working as we intend, in that we are stripping the IE conditionals in email templates as it leaves us open to XSS injections.

I don't really understand that part, XSS injection in your side ( intercom builder ? ) or in email clients side ? Because emails clients are stripping javascript anyway, if it's in your builder, why won't you just stripping them on display/preview but keep them when sending ?

Sorry for the delay in getting back to you here, completely missed this notification. I understand that this isn't the ideal solution and we are investigating a possible alternative. I'm not the best person to answer the reasoning behind these protects against an XSS injection, but I'll get the right person and update you as soon as possible on that. ๐Ÿ‘

Well issue is in Intercom side, not with MJML. What you can do is replace comments when upload your template to intercom ( and you will lose outlook 2000&2003 compatibility).

Intercom (@kmossco) has been notified and is aware of it, so I'm closing the issue.

Hi i'm having the sae issue.
What comments do i have to remove please ?

As suggesting in this issue, you can remove the IE | part but you'll loose some compatibility in older Outlook.

Hey again! Just wanted to let you know that we have finally fixed this problem in our content sanitization that was removing some conditionals. This means that if you use the conditionals that were being removed before, they will be sent as they are to the email clients without any pruning or interference by our sanitization. We really hope this helps, but feel free to ping me here or at [email protected] if you continue to bump into any issues sending these. ๐Ÿ‘

Fixed? Fantastic! Thanks guys.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

valstu picture valstu  ยท  3Comments

liminspace picture liminspace  ยท  3Comments

ghost picture ghost  ยท  4Comments

fmauNeko picture fmauNeko  ยท  3Comments

lucasnantonio picture lucasnantonio  ยท  4Comments