Чи підтримується JavaScript в електронному повідомленні?


146

Чи підтримується JavaScript в електронному повідомленні?


38
Цього не заслуговує -1
кікіто

1
Це цільова програма електронної пошти, Outlook? Грім? GMail? Hotmail? Все вищеперераховане? Інші? Різні програми електронної пошти відображають пошти по-різному.
WonderWorker

1
Я щойно бачив, що хлопці з ракетної теми роблять зворотний відлік, тому дні, хвилини і секунди, а графіка теж оживляє ... дивовижно, що можливо зараз. Не впевнений, як ще вони можуть це робити. Спостерігається у клієнті mac mail.
приземлився

2
Я знайшов домен і отримав це - motionmailapp.com
приземлився

3
@landed Я щойно побачив те саме в електронному листі від WordPress. Виявляється, це просто динамічно генерований GIF, який починає відлік часу після його отримання (і він скидається через 45 секунд - я думаю, якщо ви не натиснули протягом 45 секунд, ви, ймовірно, вже закрили електронну пошту).
Ліонель Роу

Відповіді:


49

http://en.wikipedia.org/wiki/Comppare_of_e-mail_clients

Старі клієнти , такі як Lotus Notes, Mozilla Thunderbird, Outlook Express і Windows Live Mail, схоже, підтримують певне виконання JavaScript. Нічого іншого не робить.

Це здається поганою ідеєю щодо безпеки, тому я б очікував, що це функція, яка не завжди буде поруч, навіть у цих клієнтів.


9
"Lotus Notes, Mozilla Thunderbird, Outlook Express і Windows Live Mail, схоже, підтримують якесь виконання JavaScript" - у сценаріях шаблонів повідомлень, а не в отриманих електронних листах.
Квентін

2
Нічого собі, ці клієнти тепер настільки старі, що посилання на те, як вони раніше поводилися, вимирають, я не можу ні підтвердити, ні заперечити це. Через шість років я буду здивований, якщо все ще використовується один клієнт електронної пошти, який увімкнено будь-яке виконання сценарію за призначенням.
MatthewMartin

18

Ні, в основному читачі електронної пошти не дозволяють JavaScript.


2
як щодо gmail у хромовому браузері?
Nicolas S.Xu

1
@ NicolasS.Xu Gmail видаляє JavaScript з пошти, перш ніж надсилати його браузеру. Тож JS не працює. Я протестував Gmail у Firefox 56 та Chrome 61. Також перевірив код в інструментах для веб-майстрів, код JS видалено.
Крістофер К.

18

Інші відповіді припустили, що відповідь "Ні".

З іншого боку, 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 у своїх тестових листах.


2
Ви не даєте конкретного списку клієнтів, на яких ви успішно протестували JS та з кодом JS. Я перевірив Thunderbird 52.4.0 з налаштуванням "Оригінальний HTML", і він ігнорував JS <script> document.write('test'); </script>у своїх тестових листах. Те саме для Outlook для Android 2.2.44, K-9 для Android 5.208, веб-пошти Gmail (тестовано 06.11.2017) та веб-продавця Roundcube 0.9.5. Тож я погодився б із тими, хто каже, що це не працює у більшості (сучасних) клієнтів. Це правда, що більшість користувачів використовують веб-пошти, але з поважної причини вони, здається, позбавлять JS з повідомлень, перш ніж передавати їх браузеру.
Крістофер К.

1
Оскільки ваше посилання на "документацію" Thunderbird взагалі не є документацією, а посилається на запитання, що сприяли користувачеві, я шукав офіційну документацію і виявив це: developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases / 3 - В ньому йдеться про те, що JS в електронних листах потрапив до Thunderbird 3.
Крістофер К.

14

Коротка відповідь

Немає


Описова відповідь

Це залежить. Але електронна пошта не гарантовано веде себе так, як ви цього хочете. Різні клієнти електронної пошти по-різному обробляють JS. Більшість нових клієнтів електронної пошти не підтримують жоден із них, оскільки потенційно дуже небезпечно підтримувати виконання сценарію у настільному додатку, який містить стільки вашої особистої інформації.

У мене був випадок використання, коли мені потрібно було використовувати JS в електронній пошті. Я також випробував на веб-клієнті Outlook та настільних клієнтів, і, виявляється, Outlook просто знищує частину сценарію HTML-пошти. Можливо, є якийсь інший клієнт електронної пошти, який підтримує виконання JS, але враховуючи, що ви не можете керувати клієнтом, де ваша електронна адреса буде переглянута на клієнтській машині, не годиться вставляти будь-які сценарії в HTML-адресу електронної пошти.

Рекомендується зберігати HTML-адресу електронної пошти якомога простіше, без JS та найменшого CSS, з яким ви можете це робити (оскільки, знову ж таки, різні клієнти електронної пошти мають різну підтримку CSS). тег кнопки в електронній пошті. Мені довелося використовувати тег прив’язки та трохи CSS поверх нього, щоб імітувати відображення кнопки.


Підсумок - не покладайтеся на Javascript під час роботи з вмістом HTML електронної пошти.


4

Ви не збираєтеся виконувати JavaScript на сервері та в поштовий клієнт. Але в електронних листах немає посилань підтримки, ви завжди можете посилатися на свій вміст в електронній пошті.



2

Це може бути, але поштові клієнти не читатимуть його, а поштові сервери можуть його відхилити. Тож залиште це.


1

Javascript не підтримується в електронних листах.


2
Це не правда. Принаймні, Outlook та Outlook Express підтримують Javascript, що є однією з багатьох причин уникати їх (з міркувань безпеки).
PauliL

1
@PauliL: Це залежить від того, чи дозволяють ваші налаштування зони обмежених сайтів.
Ніл Найт

0

Ви можете переглянути електронний лист із JavaScript, який працює з Windows Live Mail, але не можете додати JavaScript до нового електронного листа, який ви хочете надіслати. JavaScript також працює із збереженими .eml файлами. Mozilla Thunderbird версія 60.7.0 не може переглядати або додавати JavaScript. (Якщо ви збережете файл eml за допомогою Thunderbird, код буде працювати, якщо файл завантажений Live Mail) Ви можете надіслати електронний лист із JavaScript, використовуючи код PHP. Деякі веб-сайти електронної пошти можуть підтримувати його, але деякі з них я не використовую. (AOL, uk2.net, GMail)


0

Немає підтримки клієнтів електронної пошти через JavaScript, пов'язані з безпекою

Спробуйте надіслати пошту із цим вмістом html

     <!DOCTYPE html>
     <html>
     <body>
     <button onclick="this.innerHTML=Date()">The time is?</button>
     </body>
     </html>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.