Javascript

Estoy haciendo una web en la que se abre un html con un formulario. Me interesa que cuando el usuario pulse el botón de enviar, además de mandar los datos a mi correo, le aparezca en esa misma ventana otro htm con el agradecimiento por haber enviado la información y un enlace para cerrar la ventana (eso del cierre ya lo tengo con el windows.close).
He mirado por foros y todos me indican que es mejor con cgi o php, ¿pero yo soy un poco pardillo y nada? Que me he encabezonao con javascript.
¿Se puede hacer esto así o hay que recurrir por ser más sencillo a cgi o php?
Respuesta
1
Esto no es cuestión de encabezonarse! Jajajaja.
Tené en cuenta lo siguiente:
Javascript funciona del lado del cliente.
Las aplicaciones cgi funcionan del lado del servidor.
Entonces... Si quieres que el resultado de un formulario se envíe por mail tienes 2 claras opciones:
1) Por javascript lo envía EL CLIENTE: utilizando mailto
2) Por cgi lo envía EL SERVIDOR: utilizando alguna función que envíe el mail desde el servidor.
Normalmente es más "transparente" que lo envíe el servidor, dado que los clientes, no tienen normalmente instalado un software que envíe el mail en forma automática, y lo más probable es que se les "abra" el programa de correo, y les pida algún dato más.
En Resumidas cuentas:
SE PUEDE HACER ESTO ASÍ, tienes que colocar un vínculo
<a href="mailto:[email protected]" onClick="gracias()">Enviar el mail</a>
Y crear la función gracias() con lo que quieras hacer.
Pero, le das al usuario la posibilidad de CANCELAR el envío del mail, o no enviarlo por no tener configurado su programa de correo (cosa bastante rara hoy en día), y tu estarás dando el mensaje de las

5 respuestas más de otros expertos

Respuesta
1
Que este basado en windows da igual, lo que necesitas es tener instalado un servidor de jsp (tomcat), php (php) o asp (este es de windows, creo que no es gratis).
Yo te recomendaría que instalases php, que es lo más sencillo de configurar y ejecutar.
http://www.php.net/downloads.php
De ahí te lo bajas, lo instalas y lo haces correr junto con tu apache (si es que usas apache com servidor html) según se indica en la documentación. Esto ya me pilla lejos de javascript, mejor pregunta a los expertos en php si tienes problemas con esto.
Después, lo que se hace es poner en el action una página .php que envía el mail y luego redirecciona a donde se quiera.
Espero que te ayude,
Saludos
P.D: Al margen de la redirección, hacerlo con un lenguaje de servidor es lo mejor, mucho más limpio para el usuario, que no ve como se le abre su programa de correo, etc.
Efectivamente, consigo enviarlo pero se queda la pantalla igual. El código es el siguiente:
<form name="form1" method="post" enctype="text/plain" action="[aquí pongo el correo]>.
De todos modos, efectivamente estoy viendo que lo suyo es usar otro tipo de lenguaje. ¿Cómo iría con cgi, asp o php? Teniendo en cuenta que mi alojamiento está basado en windows, no en linux, claro.
Muchas gracias.
Bueno, soy novato en todo esto, pero... ¿realmente es necesario instalarse todo esto para que mediante código generado por dreamweaver se ejecute el envío del formulario desde servidor?
Uf, me parece que me va a costar más de lo que pensaba.
¿Cómo haces para enviar el formulario por correo?
¿Usas algo como esto?:
<form method="post" action="mailto:[email protected]" enctype="text/plain">
<input type=text name="comentario">
<input type=submit value="Enviar">
</form>
Esto creo que deja la página en el mismo sitio tras enviarlo.
Aunque lo suyo es usar un php o jsp o asp o cgi para que lo haga y luego te redireccione a donde le digas.
Estoy mirando la posibilidad de ASP, ya que me han indicado desde servidor que tienen el componente ASPMAIL, pero estoy en ello... a ver si puedo.
En servidores windows suele usarse asp, si, con ese modulo deberías poder componer y enviar mails con el contenido como lo quieras maquetar.
Luego, puedes redireccionar a la página que quieras.
Valórame la pregunta para que queda cerrada y no se me quede abierta para siempre, ¿ok?
Claro que sí. Es bueno encontrar gente que se preocupe en estos temas. Un saludo.
No es para enviar un formulario, sino para enviar un mail. El servidor tiene que enviar un correo él, no el usuario. El servidor de html normal no lo hace, de modo que necesitas otra cosa más (php, asp, jsp...), u lenguaje de servidor.
Así es como se hace, tal vez debieras valorar utilizar alguno de esos servicios de envío de mails que hay por ahí, pero no es demasiado recomendable si vas a hacer algo serio.
También puedes hacerte una cuenta en uno de esos servidores gratuitos que te dan php ya puesto.
Respuesta
1
Utilizando Javascript sólo se como enviar un email a través del outlook (como cuando utilizas mailto: en un link)
Lo que quieres hacer yo lo haría, como te han indicado otros, con php. De esta forma tampoco puedes asegurar que la información se envía, pero si que al menos se ha pasado a la bandeja de salida del servidor sendmail.
Bueno, los correos tardan un poco, pero llegan normalmente. En mi caso, al poner lo siguiente, llegan en texto plano:
<form name="form1" method="post" enctype="text/plain" action="mailto:[email protected]">
De todos modos miraré algo de php, que me parece que es mejor opción.
Respuesta
1
Lo que se puede hacer es separar el problema en 2 partes:
1º: envío del mail mediante ASP o PHP
2º: carga del mensaje de agradecimiento mediante JavaScript.
Es decir, que al mismo tiempo podes enviar al formulario (con un action hacia un ASP o un PHP que se ocupe de enviar el correo) y capturar el evento onload de ese ASP o PHP con JavaScript y cambiar el location. Href por el url de la página de agradecimiento.
Definitivamente no puede enviarse el mail desde JavaScript ya que para hacer esto hay que contar con un lenguaje de lado servidor que utilice los servicios CDONTS o ASPEMAIL o los que traiga PHP o CGI (este ya no se usa por ser excesivamente complicado y muy primitivo), y JavaScript es un lenguaje de lado Cliente, se ejecuta en el cliente (el usuario que navega tu sitio) y puede trabajar con el navegador (cambiar el texto de estado, las barras de herramientas, cerrar o abrir ventanas) puede trabajar con el documento (validar campos, enviar formularios, hasta se pueden hacer pequeños juegos o aplicaciones de cálculo).
Ahora bien, suponiendo que hagas la parte del correo con ASP o PHP, sería más simple directamente cargar la url de agradecimiento con ese mismo lenguaje, en ASP: response. Redirect URL
Y listo!
Atentamente. Manuel Fernández.
PD: cualquier cosa que quieras que te escriba el código para el envío del correo (en ASP) comunícamelo y lo haré gustoso.
SALUDOS. Y Suerte!.
Llevo muy poco tiempo con esto del JavaScript, pero sí he conseguido enviar el correo mediante este lenguaje, poniendo lo siguiente:
<form name="form1" method="post" enctype="text/plain" action="mailto:[email protected]">.
Cuando el usuario me envía el formulario, yo recibo en texto plano la información. El asunto es que a partir de ahí, el formulario se queda con la información, pero no puedo poner en esa misma ventana otro htm dando las gracias por haber enviado los datos.
Bien, ahora entiendo, vos lo envías de ese modo, no se me había ocurrido, bueno hace esto:
<form name="form1" method="post" enctype="text/plain" action="mailto:[email protected]" onSubmit="javascript:window.open(URL,window.name);">
Donde dice URL pone la direeción de la página de agradecimiento.
Esto la va a abrir luego de que se envíe el form.
Atentamente. Manuel Fernández.
Respuesta
1
Así es lo que tu necesitas es ocupar, a fuerza, es un lenguaje scrpt para poder enviar la información por correo electrónico. Puedes ocupar cgi, php, asp, jsp... todo depende de que clase de servidor estés ocupando para publicar tu sitio, por ejemplo si el servidor tiene Linux, Unix, lo mejor es usar un cgi o php; si tu servidor es Windows, o sea, tiene Internet Information Server (IIS), lo mejor es usar ASP.
Gracias por la aclaración. Finalmente, tras mirar muchos foros y demás, me he decidido por el ASP, porque mi alojamiento es efectivamente windows. No obstante estoy muy perdido en esto porque soy muy novato y no tengo mucha idea más que lo que voy aprendiendo a base de trastear, copiar y pegar código y equivocarme muchas veces...
Lo que sí me han dicho los del alojamiento es que tengo ASPMAIL, con lo que me imagino que tengo que utilizar programación en ASP. El tema es que estoy pez, y no sé cómo irlo haciendo. Intentaré irme informando sobre el servicio de correo a ver si me dan alguna pista.
OK, finalmente te dejo unas ligas con código interesante que puedes ocupar para enviar correos electrónicos con ASPMAIL, están en ingles
http://help.maximumasp.com/SmarterTicket/Customer/KBArticle.aspx?articleid=375
http://www.serverobjects.com/comp/aspmail4.htm
Y por ultimo solo te pido que termines y califiques la pregunta.
Respuesta
1
Siento no haber respondido antes, no he podido mirar mi cuenta porque he tenido mucho lio, si sigues con la duda, coméntamelo e intentare ayudarte.
No te preocupes, muchas gracias. Al final me paso a php porque me da más funcionalidad para lo que necesito.
Lo importante es que te has puesto en contacto y eso se agradece.
Feliz Año!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas