Stöds JavaScript i ett e-postmeddelande?
Stöds JavaScript i ett e-postmeddelande?
Svar #1
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
Gamla klienter, såsom Lotus Notes, Mozilla Thunderbird, Outlook Express och Windows Live Mail verkar alla ha stött någon form av JavaScript-körning. Inget annat gör det.
Det verkar vara en dålig idé ur säkerhetssynpunkt, så jag skulle förvänta mig att detta är en funktion som inte alltid kommer att finnas, även i dessa klienter.
Svar #2
Kort svar
Nej
Beskrivande svar
Det beror på. Men e-posten garanteras inte att bete sig på det sätt du vill. Olika e-postklienter hanterar JS olika. De flesta av de nyare e-postklienterna stöder inget av det eftersom det potentiellt är mycket farligt att stödja skriptkörning i en skrivbordsapplikation som innehåller så mycket av din personliga information.
Jag hade ett användningsfall där jag behövde använda JS i ett e-postmeddelande. Jag testade på Outlooks webbklient och även desktopklienten, och det visar sig att Outlook helt enkelt tar bort skript-delen av ditt HTML-e-postmeddelande. Det kan finnas någon annan e-postklient som faktiskt stöder JS-exekvering, men med tanke på att du inte kan kontrollera klienten där ditt e-postmeddelande kommer att visas på användarens maskin, är det inte en bra idé att bädda in några skript i HTML-e-postmeddelandet.
Det rekommenderas att hålla din HTML-e-post så enkel som möjligt, ingen JS, och så lite CSS som möjligt (eftersom olika e-postklienter har varierande stöd för CSS också) t.ex.: Outlooks webklient kände inte ens igen en HTML-knapptagg i e-posten. Jag var tvungen att använda en ankartagg och lite CSS ovanpå den för att efterlikna utseendet av en knapp.
Slutsats - Lita inte på Javascript när du arbetar med HTML-e-postinnehåll.
Svar #3
Nej, generellt sett tillåter inte e-postläsare JavaScript.
Svar #4
Andra svarare har föreslagit att svaret är "Nej."
Å andra sidan kommer ett html-bilaga troligen att öppnas i en miljö som kör Javascript.
REDIGERA: Det föreslogs att jag inte har besvarat frågan ordentligt, så här kommer ett mer komplett försök.
Sammanfattning: Jag skulle förvänta mig att många eller de flesta användare som får ett HTML-formaterat e-postmeddelande som innehåller inbäddad Javascript kommer att se det köras och ha kört tester för att bekräfta att detta är sant i vissa miljöer. Men Javascript KOMMER att blockeras för vissa användare.
Protokollen (specifikt RFC2854) behandlar uttryckligen skriptning (inom text/html-meddelandekroppstypen) med uttalandet att:
Dessutom medförde introduktionen av skriptspråk och interaktiva funktioner i HTML 4.0 ett antal säkerhetsrisker som är kopplade till automatisk körning av program som skrivits av avsändaren men tolkas av mottagaren. Användaragenter som kör sådana skript eller program måste vara extremt försiktiga för att säkerställa att opålitlig programvara körs i en skyddad miljö.
Så protokollen stöder Javascript, men vilka användaragenter gör det?
Min (gamla) e-postläsare använder en tabell för att specificera vilken visningsprogramvara som ska användas för varje mimetyp, och skickar HTML-innehåll till min favoritwebbläsare. Nästan alla nuvarande webbläsare stöder Javascript (och vissa ger allvarliga varningar när du försöker stänga av det!) Har moderna e-postprogram interna HTML-tolkare och, om så är fallet, är Javascript påslaget eller avstängt? Jag har kollat dokumentation om Thunderbird och ser att Javascript verkar vara påslaget som standard men kan stängas av: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160
Jag har märkt att vissa (?många?) användare nu nå sina e-post direkt från en webbläsare (webmail är en sådan plattform) snarare än att använda separat e-postprogram. Alla sådana plattformar som jag har testat hittills kan köra JavaScript inbäddat i HTML-koden i e-postmeddelandet. Dock kör vissa sådana miljöer, beroende på användarens säkerhetsinställningar, inte automatiskt externa länkar (JavaScript eller bilder eller annat) och kan därför endast köra extern JavaScript från en fil som är inkluderad som en bilaga till meddelandet. Samma skulle gälla för vilken offline e-postläsare som helst på en enhet utan en aktuell internetanslutning.
Ovanstående gäller för javascript som är inbäddat i huvudmeddelandedelen av e-postkroppen. Man kan också ha html som uttryckligen anges som en "bilaga", vilken om den sparas och sedan öppnas skulle visas i en webbläsare, där Javascript är tillgängligt med mycket hög sannolikhet. Därför kan man inkludera en andra kopia av det javascript-aktiverade e-postmeddelandet som en html-bilaga med ett alternativt text/plain huvudmeddelande och/eller -tagg i huvudtexten/html som hänvisar användaren till bilagan.
Jag har funderat på detta eftersom några av mina bekanta insisterar på att skicka mig "e-posthälsningskort" som består av ett textmeddelande som hänvisar mig till en länk, som jag har funnit så otillfredsställande att jag vägrar ens att överväga att ladda den bara av princip. Jag har skrivit och skickat e-posthälsningskort med interaktiva grafik och musik och till och med spel med inbäddad javascript och varit nöjd med resultatet.
Därför hävdar jag att det rätta svaret är "Ja", både på grund av att protokollen specifikt behandlar skriptning och på grund av att alla de e-postagentprogram som jag personligen använder körde Javascript i mina testmejl.