web-dev-qa-db-fra.com

JavaScript est-il pris en charge dans un message électronique?

JavaScript est-il pris en charge dans un message électronique?

105
senthil

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 de JavaScript. Rien d'autre ne fait.

Cela semble être une mauvaise idée en termes de sécurité, alors je m'attendrais à ce que cette fonctionnalité ne soit pas toujours présente, même chez ces clients.

35
MatthewMartin

D'autres répondants ont suggéré que la réponse soit "Non"

D'autre part, une pièce jointe html sera probablement ouverte dans un environnement utilisant Javascript.

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

Résumé: Je m'attendrais à ce que beaucoup d'utilisateurs, ou la plupart d'entre eux, recevant un courrier électronique au format HTML contenant du code JavaScript incorporé le voient s'exécuter et effectuent des tests pour confirmer que cela est vrai dans certains environnements. Mais Javascript sera bloqué pour certains utilisateurs.

Les protocoles (en particulier RFC2854) adressent explicitement les scripts (dans le type de corps de message text/html) avec la déclaration suivante:

En outre, l'introduction des langages de script et Les fonctionnalités interactives de HTML 4.0 ont introduit un certain nombre de risques de sécurité associés à l'exécution automatique de programmes écrit par l'expéditeur mais interprété par le destinataire. Utilisateur les agents exécutant de tels scripts ou programmes doivent faire extrêmement attention pour assurer que le logiciel non approuvé est exécuté dans un environnement protégé environnement.

Les protocoles supportent donc Javascript, mais quels agents utilisateurs le font?

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

J'ai remarqué que certains utilisateurs ("nombreux") accèdent désormais à leur courrier électronique directement depuis un navigateur (le Webmail est l'une de ces plates-formes) plutôt que d'exécuter un logiciel de courrier électronique séparé. Toutes les plates-formes que j'ai testées jusqu'à présent exécutent un script Javascript intégré au code HTML du message électronique. Toutefois, certains 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 que du code Javascript externe à partir d'un fichier joint en pièce jointe au message. Il en irait de même de tout lecteur de courrier électronique hors connexion sur un appareil sans connexion Internet actuelle.

Ce qui précède s’applique à javascript intégré dans la partie principale du message du corps du message. Il est également possible de donner explicitement le code HTML à une "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, vous pouvez inclure une deuxième copie du courrier électronique activé javascript sous forme de pièce jointe html avec un autre corps text/plain et/ou une balise dans le texte/html principal 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" consistant 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 uniquement par principe . J'ai écrit et envoyé des cartes de vœux contenant des graphiques et de la musique interactifs, ainsi que des jeux utilisant du javascript intégré, et je suis satisfait du résultat.

Par conséquent, j’affirme que la réponse correcte est "Oui", à la fois parce que les protocoles traitent spécifiquement des scripts et que tous les agents de messagerie que j’utilise personnellement ont exécuté le code Javascript dans mes courriels de test.

16
Robert Morewood

Non, en règle générale, les lecteurs de messagerie n'autorisent pas le javascript.

13
jsight

Vous n'allez pas obtenir de code JavaScript exécutable sur un serveur et sur un client de messagerie. Mais les emails supportent les liens, vous pouvez toujours créer un lien vers votre contenu dans un email.

4
Sam152

Pour la plupart des clients de messagerie, non.

3
Mervyn

Peut-être, mais les clients de messagerie ne le liront pas et les serveurs de messagerie risquent de le rejeter. Alors laisse tomber.

2
Ed B

Javascript n'est pas supporté dans les emails.

1
Neil Knight

Réponse courte

Non


Réponse descriptive

Ça dépend. Mais il n’est pas garanti que le courrier électronique 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 solution, car il est potentiellement très dangereux de prendre en charge l'exécution de scripts dans une application de bureau contenant une grande partie de vos informations personnelles.

J'ai eu un cas d'utilisation où je devais utiliser JS dans un email. J'ai également essayé sur le client Web d'Outlook et sur le client de bureau, et il s'avère qu'Outlook efface simplement la partie script de votre courrier électronique HTML. Il est possible qu'un autre client de messagerie prenne en charge l'exécution de JS, mais étant donné que vous ne pouvez pas contrôler le client dans lequel votre courrier électronique serait affiché sur l'ordinateur client, il n'est pas judicieux d'intégrer des scripts dans le courrier HTML.

Il est conseillé de garder votre courrier 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 supportent également différents types de CSS), par exemple: le client Web de Outlook n'était même pas reconnu une balise de bouton HTML dans l'e-mail. J'ai dû utiliser une balise d'ancrage et quelques CSS au-dessus pour imiter l'affichage d'un bouton.


En bout de ligne - ne comptez pas sur Javascript lorsque vous travaillez avec un courrier électronique HTML contenu.

1
ketan jain

La réponse est oui, car le courrier électronique peut véhiculer n'importe quel type de message, y compris JavaScript.

Que vous trouviez une application capable d'exécuter JavaScript dans un courrier électronique est un autre problème. 

0
Michael