Pergunta

Quero criar uma página da web de criador de e-mail do lado do cliente.Eu conheço os problemas de usar a ação mailto em um formato HTML (não padrão, nenhuma aplicação de email padrão definida no cliente).Mas a página web não é muito importante e eles não se importam muito.

O email criado pela ação mailto tem a sintaxe:

assunto:assunto indefinido
corpo:

parâmetro1=valor1
parâmetro2=valor2
.
.
.
parâmetro = valor

Posso usar JavaScript para formatar o e-mail assim?

Assunto:XXXXXX

Corpo:Valor1;Valor2;Valor3...ValorN

Foi útil?

Solução

O que usamos em um projeto é uma janela pop-up que abre um mailto:link, é a única maneira que encontramos de compor um e-mail dentro do cliente de e-mail padrão que funciona com todos os clientes de e-mail (pelo menos todos os nossos clientes usaram).

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
var subject = ""//between the speech marks goes the subject of the message
var href = "mailto:" + addresses + "?"
         + "subject=" + subject + "&"
         + "body=" + body;
var wndMail;
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
if(wndMail)
{
    wndMail.close();    
}

Outras dicas

Você tem mais ou menos apenas duas alternativas ao enviar e-mails pelo navegador.

  1. crie uma página que receba a entrada do usuário e permita que eles enviem e-mails através do seu servidor web.Você precisa de algum tipo de script do lado do servidor para isso.
  2. use um mailto:link para acionar a abertura do cliente de e-mail registrado do usuário.Isso apresenta as armadilhas óbvias que você mencionou e é menos flexível.Porém, precisa de menos trabalho.

Somente com javascript, é não é possivel.
Javascript não se destina a fazer tais coisas e é severamente prejudicado na maneira como pode interagir com qualquer coisa que não seja o navegador em que reside (por um bom motivo!).

Pense nisso:um spammer escrevendo um site com javascript do lado do cliente que enviará automaticamente para milhares de endereços de e-mail aleatórios.Se as pessoas acessassem esse site, todas estariam participando de um golpe de mala direta distribuída em massa, com seus próprios computadores...nenhuma infecção ou interação do usuário é necessária!

Você pode criar um link mailto e dispará-lo usando javascript:

  var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";  
  var mlink = document.createElement('a');
  mlink.setAttribute('href', mail);
  mlink.click();

Existe uma razão pela qual você não pode simplesmente enviar os dados para uma página que trata do envio de e-mails?É muito fácil enviar um e-mail na maioria dos idiomas; portanto, a menos que haja um forte motivo para enviá-lo ao lado do cliente, eu recomendaria esse caminho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top