2008-08-11 13 views
13

Quiero crear una página web de creador de correo del lado del cliente. Conozco los problemas de usar la acción mailto en un formulario html (no estándar, no hay una aplicación de correo predeterminada configurada en el cliente). Pero la página web no es muy importante y no les importa demasiado.¿Puedo usar JavaScript para crear un correo electrónico del lado del cliente?

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

sujeto: sujeto indefinido
cuerpo:

param1 = valor1
param2 = valor2
.
.
.
paramN = valorN

¿Puedo usar JavaScript para formatear el correo de esta manera?

Asunto: XXXXX

cuerpo: valor1; valor2; ... Valor3 ValueN

Respuesta

15

Lo que utilizamos en un proyecto es una ventana emergente que abre un enlace mailto: es la única forma de encontrar un correo en el cliente de correo predeterminado que funciona con todos los clientes de correo (al menos todos nuestros clientes utilizan)

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

Parece que no funciona en IE 8. wndMail es nulo, según el depurador. –

+0

Perdón por escuchar eso. Es de un viejo proyecto que usa IE6. Siéntase libre de editar para mejorar :) –

+0

No se puede encontrar una solución hasta el momento. –

0

¿Hay alguna razón no se puede simplemente enviar los datos a una página que se encarga de enviar el ¿correo? Es bastante 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 llevarlo al lado del cliente, recomendaría esa ruta.

6

Es más o menos sólo tiene dos alternativas al enviar el correo a través del navegador ..

  1. crea una página que toma la entrada del usuario, y les permite enviar el correo a través de su servidor web. Necesitas algún tipo de scripting del lado del servidor para esto.
  2. use un mailto: enlace para activar la apertura del cliente de correo registrado de los usuarios. Esto tiene las trampas obvias que mencionaste, y es menos flexible. Sin embargo, necesita menos trabajo.
4

Con javascript solo, es no es posible.
Javascript no está destinado a hacer tales cosas y está severamente afectado por la forma en que puede interactuar con cualquier cosa que no sea el navegador web en el que vive (¡por una buena razón!).

Piénselo: un spammer escribe un sitio web con javascript del lado del cliente que enviará automáticamente por correo a miles de direcciones de correo electrónico aleatorias. Si las personas tuvieran que ir a ese sitio, todos estarían participando en una estafa de correo masivo distribuido, con su propia computadora ... ¡no es necesaria la infección o la interacción del usuario!

+3

Pero la acción mailto no enviar el correo, sólo se llama a la aplicación de correo electrónico predeterminada del cliente y crear un nuevo correo , pero sin enviarlo.De modo que dicho sitio de malware no puede enviar spam sin la colaboración del usuario. Solo quiero que javascript formatee el cuerpo del mensaje, no para enviarlo, pero ver las respuestas esto no es posible. – Telcontar

1

Se puede crear un mailto-enlace y disparar usando javascript:

var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body"; 
    var mlink = document.createElement('a'); 
    mlink.setAttribute('href', mail); 
    mlink.click(); 
+0

¡Gracias, eso respondió mi idea de "va a funcionar el espacio" súper simple! – Fortin

Cuestiones relacionadas