Электронные письма в формате HTML — сложный зверь. Решить, что отправлять (как отправитель) и что отображать (как получатель), сложно и потенциально опасно.
Что касается получателей, у нас есть веб-почта и обычные почтовые клиенты. Для моих целей я считаю «веб-почтой» все, что отображает электронную почту в формате HTML как часть чего-то, что само по себе является HTML, а обычные почтовые клиенты — все, что отображает электронную почту в формате HTML в другом контексте (например, ОС и графический интерфейс для конкретной программы).
Что должна делать веб-почта с заголовками HTML (<head>
, <title>
, <meta>
, ...) в электронном письме?
Есть ли где-нибудь спецификация, будь то фактический стандарт или де-факто -стандарт?
Мой вопрос заключается в том, что мы используем HTML Purifier для очистки нашего HTML и если его Core.CollectErrors сообщает об изменениях, о них сообщается. Это «сообщение» необходимо... и неприятно. Мы исключаем некоторые из обнаруженных ошибок как незначительные для наших целей, но заголовки HTML представляют собой серьезное препятствие:
Кто-то потенциально может использовать <link>
в своем электронном письме, которое мы удалим. (HTML Purifier предназначен для фрагментов HTML, а не для полных документов)
Желание использовать такие вещи, как <link>
, в сообщениях электронной почты в формате HTML, безусловно, email-head.html" rel="noreferrer">похоже, существует, и существует множество почтовых клиентов, которые отправляют <meta>
-теги в заголовке HTML (например, Outlook), но как обстоят дела в дикий? Безопасно ли удалять их молча (что для наших целей означает «ненарушающее изменение») и возлагать пресловутую вину на отправляющую сторону, если оно действительно сломается? Это разумно? Кто-нибудь когда-нибудь решал это тем или иным способом? Мой гугл-фу слаб. :(