JavaScript est-il pris en charge dans un e-mail?

146

JavaScript est-il pris en charge dans un e-mail?

senthil
la source
38
Cela ne mérite pas un -1
kikito
1
Le programme de messagerie cible est-il Outlook? Thunderbird? Gmail? Hotmail? Tout ce qui précède? Autres? Différents programmes de messagerie rendent les mails différemment.
WonderWorker
1
Je viens de voir que les gars de Rockettheme font un compte à rebours donc jours heures minutes et secondes et les graphismes s'animent aussi ... incroyable ce qui est possible maintenant. Je ne sais pas comment ils pourraient faire cela autrement. Observé dans le client de messagerie Mac.
atterri le
2
J'ai trouvé un domaine et j'ai obtenu ceci - motionmailapp.com
atterri le
3
@landed Je viens de voir la même chose dans un e-mail de WordPress. Il s'avère que c'est simplement un GIF généré dynamiquement qui démarre le compte à rebours à partir du moment où il est récupéré (et il se réinitialise après 45 secondes - je suppose que si vous n'avez pas cliqué dans les 45 secondes, vous avez probablement déjà fermé l'e-mail).
Lionel Rowe

Réponses:

49

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

Les anciens clients , tels que Lotus Notes, Mozilla Thunderbird, Outlook Express et Windows Live Mail, semblent tous avoir pris en charge une sorte d'exécution JavaScript. Rien d'autre ne le fait.

Cela semble être une mauvaise idée du point de vue de la sécurité, donc je m'attendrais à ce que ce soit une fonctionnalité qui ne sera pas toujours disponible, même dans ces clients.

MatthewMartin
la source
9
"Lotus Notes, Mozilla Thunderbird, Outlook Express et Windows Live Mail semblent tous prendre en charge une sorte d'exécution JavaScript" - Dans les scripts de modèle de message, pas dans les e-mails reçus.
Quentin
2
Wow, ces clients sont maintenant si vieux que les liens sur la façon dont ils se comportaient sont en train de disparaître, je ne peux ni confirmer ni nier quoi que ce soit. Six ans plus tard, je serais surpris qu'il y ait un seul client de messagerie encore en cours d'utilisation qui ait une sorte d'exécution de script activée exprès.
MatthewMartin
18

Non, les lecteurs de courrier électronique ne permettent généralement pas le Javascript.

jsight
la source
2
et gmail dans le navigateur Chrome?
Nicolas S.Xu
1
@ NicolasS.Xu Gmail supprime le JavaScript du courrier avant de le transmettre au navigateur. Donc JS ne fonctionne pas. J'ai testé Gmail dans Firefox 56 et Chrome 61. J'ai également vérifié le code dans les outils webmaster, le code JS est supprimé.
Christopher K.
18

D'autres répondants ont suggéré que la réponse est «non».

D'un autre côté, une pièce jointe HTML sera probablement ouverte dans un environnement qui exécute Javascript.

EDIT: Il a été suggéré que je n'ai pas correctement répondu à la question, alors voici un effort plus complet.

Résumé: Je m'attendrais à ce que beaucoup ou la plupart des utilisateurs recevant un e-mail au format HTML contenant du Javascript intégré le voient s'exécuter et exécutent des tests pour confirmer que cela est vrai dans certains environnements. Mais Javascript SERA bloqué pour certains utilisateurs.

Les protocoles (en particulier la RFC2854) abordent explicitement les scripts (dans le type de corps de message text / html) avec l'instruction que:

De plus, l'introduction de langages de script et de fonctionnalités interactives dans HTML 4.0 a introduit un certain nombre de risques de sécurité associés à l'exécution automatique de programmes écrits par l'expéditeur mais interprétés par le destinataire. Les agents utilisateurs exécutant de tels scripts ou programmes doivent être extrêmement prudents pour s'assurer que les logiciels non approuvés sont exécutés dans un environnement protégé.

Les protocoles prennent donc en charge Javascript, mais quels sont les agents utilisateurs?

Mon (ancien) lecteur de courrier électronique utilise un tableau pour spécifier le logiciel de visualisation à utiliser pour chaque type MIME, en détournant le contenu html vers mon navigateur Web préféré. Presque tous les navigateurs Web actuels prennent en charge Javascript (et certains émettent des avertissements désastreux lorsque vous essayez de le désactiver!) Les agents de messagerie modernes incluent-ils des interprètes html internes et, si oui, le JavaScript est-il activé ou désactivé? J'ai vérifié la documentation sur Thunderbird et j'ai trouvé que javascript semble être activé par défaut mais peut être désactivé: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160

J'ai remarqué que certains (? Plusieurs?) Utilisateurs accèdent désormais directement à leur courrier électronique à partir d'un navigateur (la messagerie Web est l'une de ces plates-formes) plutôt que d'exécuter un logiciel de messagerie séparé. Toutes ces plates-formes que j'ai testées jusqu'à présent exécutent du Javascript intégré dans le html du message électronique. Cependant, certains de ces environnements, en fonction des paramètres de sécurité de l'utilisateur, ne récupèrent pas automatiquement les liens externes (Javascript ou images ou autres) et ne peuvent donc exécuter du Javascript externe qu'à partir d'un fichier inclus en pièce jointe au message. Il en irait de même pour tout lecteur de courrier électronique hors ligne sur un appareil sans connexion Internet actuelle.

Ce qui précède s'applique au javascript intégré dans la partie principale du message du corps de l'e-mail. On peut également avoir du html explicitement donné en tant que «pièce jointe», qui, si elle était enregistrée puis ouverte, serait affichée dans un navigateur Web, dans lequel Javascript est disponible avec une très grande probabilité. Par conséquent, on peut inclure une deuxième copie du courrier électronique activé par javascript en tant que pièce jointe html avec un texte alternatif / corps principal simple et / ou une balise dans le texte principal / html dirigeant l'utilisateur vers la pièce jointe.

J'y ai réfléchi parce que certaines de mes connaissances insistent pour m'envoyer des "cartes de vœux par courrier électronique" qui consistent en un message texte me dirigeant vers un lien que j'ai trouvé si insatisfaisant que je refuse même d'envisager de le charger par principe . J'ai écrit et envoyé des cartes de vœux par e-mail avec des graphiques et de la musique interactifs et même des jeux utilisant du javascript intégré et j'ai été satisfait du résultat.

Par conséquent, je maintiens que la bonne réponse est «Oui» à la fois au motif que les protocoles traitent spécifiquement des scripts et au motif que tous les agents de messagerie que j'utilise personnellement ont exécuté le Javascript dans mes e-mails de test.

Robert Morewood
la source
2
Vous ne donnez aucune liste concrète de clients dans lesquels vous avez testé JS avec succès et avec quel code JS. J'ai vérifié Thunderbird 52.4.0 avec le paramètre "HTML d'origine", et il a ignoré le JS <script> document.write('test'); </script>dans mes e-mails de test. Idem pour Outlook pour Android 2.2.44, K-9 pour Android 5.208, Gmail webmailer (testé le 06.11.2017) et Roundcube webmailer 0.9.5. Je suis donc d'accord avec ceux qui disent que cela ne fonctionne pas dans la plupart des clients (modernes). Il est vrai que la plupart des utilisateurs utilisent des webmailers, mais pour une bonne raison, ceux-ci semblent supprimer JS des messages avant de les transmettre au navigateur.
Christopher K.
1
Comme votre lien vers la "documentation" de Thunderbird n'est pas du tout de la documentation mais fait référence à une question posée par l'utilisateur, j'ai recherché une documentation officielle et j'ai trouvé ceci: developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases / 3 - Il dit que JS dans les e-mails a été abandonné dans Thunderbird 3.
Christopher K.
14

Réponse courte

Non


Réponse descriptive

Ça dépend. Mais il n'est pas garanti que l'e-mail se comporte comme vous le souhaitez. Différents clients de messagerie traitent JS différemment. La plupart des clients de messagerie les plus récents ne prennent en charge aucune de ces fonctionnalités, car il est potentiellement très dangereux de prendre en charge l'exécution de scripts dans une application de bureau qui contient autant de vos informations personnelles.

J'ai eu un cas d'utilisation où je devais utiliser JS dans un e-mail. J'ai également essayé le client Web d'Outlook et le client de bureau, et il s'avère que Outlook efface simplement la partie script de votre e-mail HTML. Il peut y avoir un autre client de messagerie qui prend en charge l'exécution JS, mais étant donné que vous ne pouvez pas contrôler le client où votre e-mail serait affiché sur l'ordinateur client, ce n'est pas une bonne idée d'incorporer des scripts dans l'e-mail HTML.

Il est conseillé de garder votre e-mail HTML aussi simple que possible, pas de JS et le moins de CSS que vous puissiez faire (car, encore une fois, différents clients de messagerie ont également un support variable pour CSS), par exemple: le client Web d'Outlook ne reconnaissait même pas un HTML balise de bouton dans l'e-mail. J'ai dû utiliser une balise d'ancrage et du CSS par-dessus pour imiter l'affichage d'un bouton.


En bout de ligne, ne vous fiez pas à Javascript lorsque vous travaillez avec du contenu d'e-mail HTML.

Ketan R
la source
4

Vous n'obtiendrez pas du JavaScript exécutable sur un serveur et dans un client de messagerie. Mais les e-mails prennent en charge les liens, vous pouvez toujours créer un lien vers votre contenu dans un e-mail.

Sam152
la source
3

Pour la plupart des clients de messagerie, non.

Mervyn
la source
2

C'est peut-être le cas, mais les clients de messagerie ne le liront pas et les serveurs de messagerie peuvent le rejeter. Alors laissez-le de côté.

Ed B
la source
1

Javascript n'est pas pris en charge dans les e-mails.

Neil Knight
la source
2
Ce n'est pas vrai. Au moins Outlook et Outlook Express prennent en charge Javascript, qui est l'une des nombreuses raisons de les éviter (pour des raisons de sécurité).
PauliL
1
@PauliL: cela dépend si vos paramètres de zone Sites restreints le permettent.
Neil Knight
0

Vous pouvez afficher un e-mail avec JavaScript fonctionnant avec Windows Live Mail, mais vous ne pouvez pas ajouter JavaScript à un nouvel e-mail que vous souhaitez envoyer. JavaScript fonctionne également avec les fichiers .eml enregistrés. Mozilla Thunderbird version 60.7.0 ne peut pas afficher ou ajouter JavaScript. (Si vous enregistrez un fichier eml avec Thunderbird, le code fonctionnera si le fichier est ensuite chargé avec Live Mail) Vous pouvez envoyer un e-mail avec JavaScript en utilisant le code PHP. Certains sites Web de messagerie peuvent le prendre en charge, mais les rares que j'ai utilisés ne le font pas. (AOL, uk2.net, GMail)

Mark Antony Agius
la source
0

Aucun client de messagerie ne prend en charge JavaScript en raison de problèmes de sécurité

Essayez d'envoyer des e-mails avec ce contenu html

     <!DOCTYPE html>
     <html>
     <body>
     <button onclick="this.innerHTML=Date()">The time is?</button>
     </body>
     </html>
sumit kushwah
la source