Поддерживается ли JavaScript в сообщении электронной почты?
Поддерживается ли JavaScript в сообщении электронной почты?
Ответы:
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
Старые клиенты , такие как Lotus Notes, Mozilla Thunderbird, Outlook Express и Windows Live Mail, похоже, поддерживали выполнение некоторого вида JavaScript. Больше ничего не делает.
Это кажется плохой идеей с точки зрения безопасности, поэтому я ожидал, что это будет функция, которая не всегда будет присутствовать, даже в этих клиентах.
Нет, в большинстве случаев программы чтения электронной почты не поддерживают использование JavaScript.
Другие респонденты предположили, что ответ - «Нет».
С другой стороны, вложение html, вероятно, откроется в среде, в которой работает Javascript.
РЕДАКТИРОВАТЬ: Было высказано предположение, что я не ответил должным образом на вопрос, поэтому здесь идет более полное усилие.
Резюме: я ожидаю, что многие или большинство пользователей, получающих электронное письмо в формате html, содержащее встроенный Javascript, увидят его запуск и проведут тесты, чтобы подтвердить, что это верно в некоторых средах. Но Javascript БУДЕТ заблокирован для некоторых пользователей.
Протоколы (в частности, RFC2854) явно обращаются к сценариям (в рамках типа тела сообщения text / html) с утверждением, что:
Кроме того, введение языков сценариев и интерактивных возможностей в HTML 4.0 привело к ряду рисков безопасности, связанных с автоматическим выполнением программ, написанных отправителем, но интерпретируемых получателем. Пользовательские агенты, выполняющие такие сценарии или программы, должны быть предельно осторожны, чтобы гарантировать, что ненадежное программное обеспечение выполняется в защищенной среде.
Итак, протоколы поддерживают Javascript, но какие пользовательские агенты поддерживают?
Моя (древняя) программа чтения электронной почты использует таблицу, чтобы указать, какую программу просмотра использовать для каждого типа mime, перенаправляя HTML-контент в мой любимый веб-браузер. Почти все современные веб-браузеры поддерживают Javascript (и некоторые из них выдают ужасные предупреждения, когда вы пытаетесь его выключить!). Включают ли современные почтовые агенты внутренние интерпретаторы html и, если да, включен ли JavaScript? Я проверил документацию по Thunderbird и обнаружил, что javascript, кажется, включен по умолчанию, но может быть отключен: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160
Я заметил, что некоторые («многие») пользователи теперь получают доступ к своей электронной почте напрямую из браузера (веб-почта является одной из таких платформ), а не запускают отдельное почтовое программное обеспечение. Все такие платформы, которые я тестировал до сих пор, запускают любой Javascript, встроенный в html сообщения электронной почты. Однако некоторые из таких сред, в зависимости от настроек безопасности пользователя, не получают автоматически внешние ссылки (Javascript, изображения или другие) и поэтому могут запускать внешний Javascript только из файла, который включен в качестве вложения в сообщение. То же самое можно сказать о любом автономном устройстве для чтения электронной почты на устройстве без подключения к Интернету.
Вышесказанное относится к javascript, встроенному в основную часть сообщения электронной почты. Можно также иметь html, явно заданный как «вложение», которое, если его сохранить и затем открыть, будет отображаться в веб-браузере, где Javascript доступен с очень высокой вероятностью. Следовательно, можно было бы включить вторую копию электронного письма с поддержкой javascript в виде вложения html с альтернативным текстом / обычным основным телом и / или тегом в основном тексте / html, направляя пользователя к вложению.
Я думал об этом, потому что некоторые из моих знакомых настаивают на отправке мне "поздравительных открыток по электронной почте", которые состоят из текстового сообщения, перенаправляющего меня по ссылке, которую я нашел настолько неудовлетворительной, что я отказываюсь даже думать о ее загрузке просто из принципа . Я написал и отправил по электронной почте поздравительные открытки с интерактивной графикой и музыкой и даже с играми, использующими встроенный javascript, и остался доволен результатом.
Поэтому я утверждаю, что правильный ответ - «Да» как на том основании, что протоколы специально обращаются к сценариям, так и на том основании, что все почтовые агенты, которые я лично использую, запускали Javascript в моих тестовых письмах.
<script> document.write('test'); </script>
в моих тестовых письмах. То же самое для Outlook для Android 2.2.44, K-9 для Android 5.208, Gmail webmailer (проверено 06.11.2017) и Roundcube webmailer 0.9.5. Так что я согласен с теми, кто говорит, что это не работает у большинства (современных) клиентов. Это правда, что большинство пользователей используют веб-почтовые программы, но по уважительной причине они, кажется, удаляют JS из сообщений, прежде чем передать их браузеру.
Нет
Это зависит. Но не гарантируется, что электронное письмо будет вести себя так, как вы хотите. Различные почтовые клиенты по-разному обрабатывают JS. Большинство новых почтовых клиентов не поддерживают ни одну из этих функций, поскольку потенциально очень опасно поддерживать выполнение сценария в настольном приложении, которое содержит так много вашей личной информации.
У меня был случай, когда мне нужно было использовать JS в электронной почте. Я также пробовал использовать веб-клиент Outlook и настольный клиент, и оказалось, что Outlook просто стирает часть сценария вашего электронного письма в формате HTML. Может быть какой-то другой почтовый клиент, который поддерживает выполнение JS, но, учитывая, что вы не можете управлять клиентом, на котором ваша электронная почта будет просматриваться на клиентском компьютере, не рекомендуется встраивать какие-либо сценарии в электронное письмо в формате HTML.
Рекомендуется, чтобы ваша электронная почта HTML была как можно более простой, без JS и минимальным количеством CSS, с которым вы можете использовать (потому что, опять же, разные почтовые клиенты также имеют разную поддержку CSS), например: веб-клиент Outlook даже не распознавал HTML тег кнопки в электронном письме. Мне пришлось использовать тег привязки и немного CSS поверх него, чтобы имитировать отображение кнопки.
Итог - не полагайтесь на Javascript при работе с содержимым электронной почты HTML.
В электронных письмах не поддерживается Javascript.
Вы можете просматривать электронное письмо с помощью JavaScript, работающего с Windows Live Mail, но не можете добавить JavaScript в новое электронное письмо, которое хотите отправить. JavaScript также работает с сохраненными файлами .eml. Mozilla Thunderbird версии 60.7.0 не может просматривать или добавлять JavaScript. (Если вы сохраните файл eml с помощью Thunderbird, код будет работать, если файл затем будет загружен с помощью Live Mail). Вы можете отправить электронное письмо с помощью JavaScript, используя код PHP. Некоторые веб-сайты электронной почты могут его поддерживать, но некоторые из них - нет. (AOL, uk2.net, GMail)
Почтовый клиент не поддерживает javascript из соображений безопасности
Попробуйте отправить почту с этим HTML-содержимым
<!DOCTYPE html>
<html>
<body>
<button onclick="this.innerHTML=Date()">The time is?</button>
</body>
</html>