Puedo usar JavaScript para crear una lado del cliente de correo electrónico?

StackOverflow https://stackoverflow.com/questions/7592

  •  08-06-2019
  •  | 
  •  

Pregunta

Quiero crear un mail de lado del cliente creador de la página web.Sé que los problemas del uso de la acción mailto en un formulario html (no estándar, no tiene ningún valor predeterminado de correo appication configurado en el cliente).Pero la página web no es muy importante, y no les importa mucho.

El correo creado por la acción mailto tiene la sintaxis:

tema:indefinido sujeto
cuerpo:

param1=valor1
param2=valor2
.
.
.
paramn=valorn

Puedo usar JavaScript para dar formato al correo como este?

Tema:XXXXX

Cuerpo:Valor1;Valor2;Valor3...Valorn

¿Fue útil?

Solución

Lo hemos utilizado en un proyecto es una ventana emergente que se abre un mailto:enlace, es la única manera que encontramos para redactar un correo electrónico en el cliente de correo predeterminado que funciona con todos los clientes de correo (al menos a todos nuestros clientes de usa).

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();    
}

Otros consejos

Más o menos sólo tienen dos alternativas cuando el envío de correo a través del navegador..

  1. hacer una página que toma la entrada del usuario, y les permite enviar el correo a través de su servidor web.Necesita algún tipo de scripting del lado del servidor para esto.
  2. el uso de un mailto:enlace para activar la apertura de los usuarios registrados cliente de correo.Esto tiene evidentes dificultades que usted ha mencionado, y es menos flexible.Se necesita menos trabajo, aunque.

Con javascript, es no es posible.
Javascript no es la intención de hacer tales cosas y es severamente mutilados en la forma en que se puede interactuar con otra cosa que el webbrowser se vive en el, (por una buena razón!).

Piense en esto:un spammer escrito un sitio web con el lado del cliente javascript que automáticamente el correo a miles de azar direcciones de correo electrónico.Si la gente debe ir a ese sitio que todos estarían participando en un distribuidas de envío masivo de estafa, con su propio equipo...no hay infección o la interacción con el usuario necesita!

Usted puede crear un mailto-link y el fuego de uso de 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();

Hay una razón que usted no puede simplemente enviar los datos a una página que se encarga de enviar el correo?Es muy fácil enviar un correo electrónico en la mayoría de los idiomas, así que a menos que haya una razón fuerte para empujar lado del cliente, me gustaría recomendar la ruta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top