-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Description
- Component or Package Name:
jsx-email(renderer/conditional.ts) - Component or Package Version: 2.8.4
@jsx-email/cliVersion?: 2.8.4- Operating System (or Browser): Linux / Classic Outlook 2019, Outlook 365 desktop
- Node Version: 24.13.0
- Link to reproduction (
⚠️ read below): Not relevant
Expected Behavior
MSO conditional comments in the <head> section should use the standard closing syntax <![endif]-->:
<!--[if mso]><xml><o:OfficeDocumentSettings><o:AllowPNG /><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->Actual Behavior
MSO conditional comments in the use non-standard closing syntax <![endif]/-->:
<!--[if mso]><xml><o:OfficeDocumentSettings><o:AllowPNG /><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]/-->Note the trailing / before -->. This causes Classic Outlook (2007-2019, Office 365 desktop) to fail to parse the conditional, resulting in emails not rendering at all.
Additional Information
The issue is in src/renderer/conditional.ts where there's intentional logic to use <![endif]/--> for head conditionals:
// when adjacent comments appear. Use the `<![endif]/-->` form
closeRaw = '<![endif]/-->';However, <![endif]/--> is not valid IE/Outlook conditional comment syntax. The standard closing is <![endif]-->. Classic Outlook's Word rendering engine doesn't recognize the non-standard form.
Workaround:
const html = await render(<Email />);
const fixed = html.replaceAll('<![endif]/-->', '<![endif]-->');Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels