O JavaScript é suportado em uma mensagem de email?

146

O JavaScript é suportado em uma mensagem de email?

senthil
fonte
38
Isso não merece -1
kikito
1
O programa de email de destino é o Outlook? Thunderbird? GMail? Hotmail? Tudo acima? Outras? Programas de email diferentes processam emails de maneira diferente.
WonderWorker
1
Acabei de ver que os caras do rockettheme estão fazendo uma contagem regressiva por dias, horas, minutos e segundos e os gráficos também estão animados ... incrível o que é possível agora. Não sei de que outra forma eles podem estar fazendo isso. Observado em mac mail client.
desembarcou em
2
Encontrei um domínio e consegui este - motionmailapp.com
desembarcado em
3
@landed Acabei de ver a mesma coisa em um email do WordPress. Acontece que é simplesmente um GIF gerado dinamicamente que inicia a contagem regressiva a partir do momento em que é buscado (e redefine após 45 segundos - acho que se você não clicou em 45 segundos, provavelmente já fechou o email).
Lionel Rowe

Respostas:

49

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

Clientes antigos , como Lotus Notes, Mozilla Thunderbird, Outlook Express e Windows Live Mail, parecem ter suportado algum tipo de execução JavaScript. Nada mais faz.

Parece uma péssima idéia em termos de segurança, então eu esperaria que esse fosse um recurso que nem sempre existisse, mesmo nesses clientes.

MatthewMartin
fonte
9
"O Lotus Notes, o Mozilla Thunderbird, o Outlook Express e o Windows Live Mail parecem suportar algum tipo de execução de JavaScript" - nos scripts de modelo de mensagem, não nos emails recebidos.
Quentin
2
Uau, esses clientes agora são tão antigos que os links de como eles costumavam se comportar estão acabando, não posso confirmar ou negar nada disso. Seis anos depois, ficaria surpreso se ainda houver um único cliente de email em uso que tenha qualquer tipo de execução de script ativada de propósito.
MatthewMartin 22/02
18

Não, geralmente os leitores de email não permitem javascript.

jsight
fonte
2
que tal o gmail no navegador chrome?
Nicolas S.Xu
1
@ NicolasS.Xu O Gmail remove o JavaScript do e-mail antes de entregá-lo ao navegador. Então, o JS não funciona. Testei o Gmail no Firefox 56 e Chrome 61. Também verifiquei o código nas ferramentas para webmasters, o código JS foi removido.
Christopher K.
18

Outros respondentes sugeriram que a resposta é "Não".

Por outro lado, um anexo html provavelmente será aberto em um ambiente que executa Javascript.

EDIT: Foi sugerido que eu não respondi corretamente à pergunta, então aqui vai um esforço mais completo.

Resumo: Eu esperaria que muitos ou a maioria dos usuários que recebem um email formatado em html contendo Javascript incorporado o veja executar e executou testes para confirmar se isso é verdade em alguns ambientes. Mas o Javascript será bloqueado para alguns usuários.

Os protocolos (especificamente o RFC2854) abordam explicitamente os scripts (dentro do tipo de corpo da mensagem de texto / html) com a declaração de que:

Além disso, a introdução de linguagens de script e recursos interativos no HTML 4.0 introduziu vários riscos à segurança associados à execução automática de programas escritos pelo remetente, mas interpretados pelo destinatário. Os agentes de usuário que executam esses scripts ou programas devem ser extremamente cuidadosos para garantir que o software não confiável seja executado em um ambiente protegido.

Portanto, os protocolos suportam Javascript, mas quais agentes de usuários?

Meu leitor de e-mail (antigo) usa uma tabela para especificar qual software visualizador usar para cada tipo de tipo, desviando o conteúdo html para o meu navegador favorito. Quase todos os navegadores da web atuais suportam Javascript (e alguns emitem avisos terríveis quando você tenta desativá-lo!) Os agentes de email modernos incluem intérpretes html internos e, se houver, o javascript está ativado ou desativado? Verifiquei a documentação no Thunderbird e descobri que o javascript parece estar ativado por padrão, mas pode ser desativado: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160

Percebi que alguns (? Muitos?) Usuários agora acessam seus emails diretamente de um navegador (o webmail é uma dessas plataformas), em vez de executar um software de email separado. Todas essas plataformas que testei até agora executam qualquer Javascript incorporado no html da mensagem de email. No entanto, alguns desses ambientes, dependendo das configurações de segurança do usuário, não buscam automaticamente links externos (Javascript, imagens ou outros) e, portanto, só podem executar Javascript externo a partir de um arquivo incluído como anexo à mensagem. O mesmo seria válido para qualquer leitor de email offline em um dispositivo sem uma conexão atual com a Internet.

O acima se aplica ao javascript incorporado na parte principal da mensagem do corpo do email. Também se pode ter o html explicitamente fornecido como um "anexo", que, se salvo e aberto, seria exibido em um navegador da web, em que o Javascript está disponível com uma probabilidade muito alta. Portanto, pode-se incluir uma segunda cópia do email habilitado para javascript como um anexo html com um texto alternativo / corpo principal simples e / ou tag no texto principal / html direcionando o usuário ao anexo.

Eu estive pensando sobre isso porque alguns de meus conhecidos insistem em me enviar "cartões de felicitações por e-mail", que consistem em uma mensagem de texto que me direciona para um link que achei tão insatisfatório que me recuso a sequer considerar carregá-lo apenas por princípio . Escrevi e enviei cartões de felicitações por e-mail com gráficos e músicas interativos e até jogos usando javascript incorporado e fiquei satisfeito com o resultado.

Portanto, afirmo que a resposta correta é "Sim", tanto pelo fato de os protocolos abordarem especificamente os scripts quanto pelo fato de que todos os agentes de email que eu pessoalmente uso executaram o Javascript nos meus emails de teste.

Robert Morewood
fonte
2
Você não fornece nenhuma lista concreta de clientes nos quais você testou JS com sucesso e com qual código JS. Eu verifiquei o Thunderbird 52.4.0 com a configuração "HTML original" e ele ignorou o JS <script> document.write('test'); </script>nos meus e-mails de teste. O mesmo para o Outlook para Android 2.2.44, K-9 para Android 5.208, Gmail webmailer (testado em 06.11.2017) e Roundcube webmailer 0.9.5. Então, eu concordo com aqueles que dizem que não funciona na maioria dos clientes (modernos). É verdade que a maioria dos usuários usa webmailers, mas por um bom motivo, eles parecem remover o JS das mensagens antes de entregá-las ao navegador.
Christopher K.
1
Como o seu link para a "documentação" do Thunderbird não é documentação, mas refere-se a alguma pergunta de contribuição do usuário, procurei por alguma documentação oficial e encontrei: developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases / 3 - Diz que JS em e-mails foi descartado no Thunderbird 3. #
Christopher K.
14

Resposta curta

Não


Resposta descritiva

Depende. Mas não é garantido que o email se comporte da maneira que você deseja. Clientes de email diferentes tratam JS de maneira diferente. A maioria dos clientes de email mais recentes não oferece suporte a nada, pois é potencialmente muito perigoso oferecer suporte à execução de scripts em um aplicativo de desktop que contém muitas informações pessoais.

Eu tinha um caso de uso em que precisava usar JS em um email. Experimentei também o cliente Web do Outlook e do Desktop, e o Outlook apenas apaga a parte do script do seu email em HTML. Pode haver algum outro cliente de email que suporte a execução JS, mas, como você não pode controlar o cliente onde seu email seria visualizado na máquina do cliente, não é uma boa ideia incorporar scripts no email em HTML.

É aconselhável manter o seu email em HTML o mais simples possível, sem JS e com o mínimo de CSS possível (porque, novamente, diferentes clientes de email também têm suporte variado para CSS), por exemplo: o cliente Web do outlook nem sequer reconhecia um HTML etiqueta de botão no email. Eu tive que usar uma tag de âncora e um pouco de CSS para imitar a exibição de um botão.


Conclusão - não confie no Javascript ao trabalhar com conteúdo de email em HTML.

Ketan R
fonte
4

Você não obterá o JavaScript executável em um servidor e em um cliente de email. Mas os e-mails oferecem suporte a links. Você sempre pode vincular seu conteúdo em um e-mail.

Sam152
fonte
3

Para a maioria dos clientes de correio, não.

Mervyn
fonte
2

Pode ser, mas os clientes de correio não o leem e os servidores de correio podem rejeitá-lo. Então deixe de fora.

Ed B
fonte
1

Javascript não é suportado em emails.

Neil Knight
fonte
2
Isso não é verdade. Pelo menos o Outlook e o Outlook Express suportam Javascript, que é um dos muitos motivos para evitá-los (por motivos de segurança).
PauliL
1
@PauliL: Isso depende se as configurações da zona de sites restritos permitirem.
Neil Knight
0

Você pode visualizar um email com JavaScript trabalhando no Windows Live Mail, mas não pode adicionar JavaScript a um novo email que deseja enviar. JavaScript também funciona com arquivos .eml salvos. O Mozilla Thunderbird versão 60.7.0 não pode exibir ou adicionar JavaScript. (Se você salvar um arquivo eml com o Thunderbird, o código funcionará se o arquivo for carregado com o Live Mail) Você pode enviar um email com JavaScript usando o código PHP. Alguns sites de email podem dar suporte, mas os poucos que eu usei não. (AOL, uk2.net, GMail)

Marco Antônio Agius
fonte