Plain text
How the plain-text fallback is produced from the rendered HTML, what it excludes, and how to control table output.
Every render returns a text string alongside html. It is a deterministic plain-text fallback produced from the final rendered HTML using pinned html-to-text behavior with no line wrapping. It is not a second, separately authored template.
What plain text includes and excludes
- Excluded: head content, images,
<script>/<style>content, and any element markeddata-skip-in-text="true".EPreviewis therefore absent from the fallback. - Links: destinations are retained when the visible text differs from the URL. Fragment links and
mailto:links follow the recorded oracle behavior. - Structure: nested lists, ordered-list starts, blockquotes, hard breaks, preformatted content, Unicode, and ordinary tables all have exact conformance cases.
Controlling table output
By default tables render as plain rows. When you specifically need aligned, column-formatted output for a table, add data-text-format="dataTable" to that table:
<table data-text-format="dataTable">
<!-- rows -->
</table>Inspect it every time
Plain text is a real deliverable that some recipients and spam filters read. Inspect it in the development preview's Plain text tab for every transactional template, exactly as you would review the HTML.
ECodeInline appears once
ECodeInline keeps two copies in HTML for Orange.fr compatibility, but marks the hidden copy to be skipped by plain-text generation. Recipients therefore receive the code once in the text alternative. This is an intentional divergence from React Email.