Я создаю генератор электронной почты с помощью React. Я отображаю таблицы (поскольку это то, что должно быть в электронном письме).
В большинстве почтовых браузеров электронная почта выглядит прилично, за исключением Outlook, который расширяет изображения и портит макет.
Вот конкретный компонент, который отображает изображения:
const Ad = ({ image, link, hasDivider, styles = localStyles }) => (
<>
<Grid.Row className={styles.container}>
<a href={link}>
<span
dangerouslySetInnerHTML={{
__html: `
<!--[if mso]>
<table width="100%">
<tr>
<td>
<img width="100%" src=${image}
alt="ad" style="text-align: right; width: 100%; border: 0;
text-decoration:none;
vertical-align: baseline;">
</td>
</tr>
</table>
<div style="display:none">
<![endif]-->`
}}
/>
<Img className={styles.image} src={image} alt="ad" />
<span
dangerouslySetInnerHTML={{
__html: `
<!--[if mso]>
</div>
<![endif]-->
`
}}
/>
</a>
</Grid.Row>
{hasDivider && (
<Grid.Row>
<Divider />
</Grid.Row>
)}
</>
)
Img
компонент:
const Img = ({ src, alt, className, styles = localStyles, style = {} }) => {
return (
<img
src={src}
alt={alt}
style={style}
className={cx(styles.img, className)}
/>
)
}
Я использую для этого условные выражения электронной почты, которые работают в более современных версиях Outlook.
max-width: 100%;
- person Maxwell s.c   schedule 01.12.2020img
. - person dawn   schedule 01.12.2020