Чи підтримується JavaScript в електронному повідомленні?
Чи підтримується JavaScript в електронному повідомленні?
Відповіді:
http://en.wikipedia.org/wiki/Comppare_of_e-mail_clients
Старі клієнти , такі як Lotus Notes, Mozilla Thunderbird, Outlook Express і Windows Live Mail, схоже, підтримують певне виконання JavaScript. Нічого іншого не робить.
Це здається поганою ідеєю щодо безпеки, тому я б очікував, що це функція, яка не завжди буде поруч, навіть у цих клієнтів.
Ні, в основному читачі електронної пошти не дозволяють JavaScript.
Інші відповіді припустили, що відповідь "Ні".
З іншого боку, html-додаток, ймовірно, відкриється в середовищі, де працює Javascript.
EDIT: Було запропоновано, що я не відповів належним чином на це питання, тому тут вживаються більш повні зусилля.
Резюме: Я б очікував, що багато або більшість користувачів, які отримують електронний лист у форматі html, що містить вбудований Javascript, побачать його запуск та виконали тести, щоб підтвердити, що це правда в деяких середовищах. Але Javascript буде заблокований для деяких користувачів.
Протоколи (зокрема RFC2854) явно розглядають сценарії (в межах типу тексту / html-повідомлення) із заявою, що:
Крім того, впровадження мов сценаріїв та інтерактивних можливостей у HTML 4.0 ввело низку ризиків для безпеки, пов’язаних із автоматичним виконанням програм, написаних відправником, але інтерпретованих одержувачем. Користувацькі агенти, що виконують такі сценарії чи програми, повинні бути дуже обережними, щоб гарантувати, що ненадійне програмне забезпечення виконується в захищеному середовищі.
Отже, протоколи підтримують Javascript, але які користувацькі агенти роблять?
Мій (древній) читач електронної пошти використовує таблицю, щоб вказати, яке програмне забезпечення для перегляду використовувати для кожного mimetype, перенаправляючи вміст 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 (тестовано 06.11.2017) та веб-продавця Roundcube 0.9.5. Тож я погодився б із тими, хто каже, що це не працює у більшості (сучасних) клієнтів. Це правда, що більшість користувачів використовують веб-пошти, але з поважної причини вони, здається, позбавлять JS з повідомлень, перш ніж передавати їх браузеру.
Немає
Це залежить. Але електронна пошта не гарантовано веде себе так, як ви цього хочете. Різні клієнти електронної пошти по-різному обробляють JS. Більшість нових клієнтів електронної пошти не підтримують жоден із них, оскільки потенційно дуже небезпечно підтримувати виконання сценарію у настільному додатку, який містить стільки вашої особистої інформації.
У мене був випадок використання, коли мені потрібно було використовувати JS в електронній пошті. Я також випробував на веб-клієнті Outlook та настільних клієнтів, і, виявляється, Outlook просто знищує частину сценарію HTML-пошти. Можливо, є якийсь інший клієнт електронної пошти, який підтримує виконання JS, але враховуючи, що ви не можете керувати клієнтом, де ваша електронна адреса буде переглянута на клієнтській машині, не годиться вставляти будь-які сценарії в HTML-адресу електронної пошти.
Рекомендується зберігати HTML-адресу електронної пошти якомога простіше, без JS та найменшого CSS, з яким ви можете це робити (оскільки, знову ж таки, різні клієнти електронної пошти мають різну підтримку CSS). тег кнопки в електронній пошті. Мені довелося використовувати тег прив’язки та трохи CSS поверх нього, щоб імітувати відображення кнопки.
Підсумок - не покладайтеся на Javascript під час роботи з вмістом HTML електронної пошти.
Ви можете переглянути електронний лист із 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>