Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Enviar un formulario por email con ASP


Creación de un script con un formulario que se envía por correo electrónico desde el servidor utilizando la tecnología ASP.


Si deseamos que, al pulsar el botón de envío de un formulario, se manden los datos por email utilizando el servidor y sin estar supeditados a la configuración del cliente para saber si ciertamente ese mensaje se pudo enviar, debemos utilizar alguna tecnología de programación de páginas del lado del servidor. En este artículo vamos a presentar un ejemplo sobre cómo hacer esta tarea con ASP.

ASP (Active Server Pages) es la tecnología de scripting del lado del servidor desarrollada por Microsoft. Con este tipo de programación podemos construir páginas que muestren un formulario y manden un correo electrónico automáticamente con los datos recibidos, una vez enviado.

Podríamos utilizar un esquema de código como el siguiente:

<%
if request.form="" then
'no recibo formulario, entonces lo muestro
%>
<form action="formulario_mail_asp.asp" method="POST">
Nombre: <input type="Text" name="nombre" size="12" maxlength="200">
<br>
Email: <input type="Text" name="email" size="12" maxlength="200">
<br>
<input type="submit" value="Enviar">
</form> <%
else
'si que recibo un formulario, entonces lo trato
'recojo los datos
nombre = request.form("nombre")
email = request.form("email")
'compongo el cuerpo del mensaje
cuerpo = "Formulario recibido" & VBNEWLINE & VBNEWLINE
cuerpo = cuerpo & "Nombre: " & nombre & VBNEWLINE
cuerpo = cuerpo & "Email: " & email
'mando el correo...
'..................
response.write "Gracias por rellenar el formulario. Se ha enviado correctamente." end if %>


En el anterior script utilizamos if (request.form="") para saber si estamos recibiendo o no información de un formulario.

Si no hemos recibido nada (porque en request.form tenemos una cadena vacía) este if saldría por su caso verdadero, en el que tendremos que presentar el formulario en la página.

El caso else, cuando sí que recibíamos un formulario, recogemos sus datos y creamos el cuerpo del mail que enviaremos a la dirección del administrador.

El resto del código, utilizado para definir las propiedades del email y enviarlo, todavía no lo hemos indicado. Antes una aclaración.

ASP no tiene entre las funciones del lenguaje una que sirva para enviar correos electrónicos. Sin embargo, podemos utilizar un componente ActiveX del servidor para realizar esas acciones.

El componente CDONTS (presente en muchas de las instalaciones de IIS) serviría para realizar el envío del mail, pero también existen en el mercado otros componentes de servidor comerciales para realizar esas acciones con mayores funcionalidades. Uno de ellos es AspEmail, que es el que vamos a utilizar en este script, pero no es el único. Hablamos de las distintas opciones en el artículo Enviar mails desde ASP.

Nota: Insistimos en que el siguiente código, que hace la acción de enviar un email, no funcionará si no tenemos el componente ASP AspEmail instalado correctamente en nuestro servidor. Además, deberíamos consultar la documentación del componente, para comprobar que en la versión que descarguemos sigue funcionando todo como aparece a continuación.

El código para enviar un mail podría ser algo como esto:

'creo el objeto correo
set mail = server.createObject("Persits.MailSender")
'configuro el mensaje
'señalo el servidor de salida para enviar el correo
mail.host = "mail.tudominio.com"
'indico la dirección de correo del remitente
mail.from = "loquesea@tudominio.com"
'indico la dirección del destinatario del mensaje
mail.addAddress "loquesea@tudominio.com"
'indico el cuerpo del mensaje
mail.body = cuerpo
'lo envio
'aseguro que no se presenten errores en la página si se producen
On Error Resume Next
mail.send
if Err ><0 then
response.write "Error, no se ha podido completar la operación"
else
response.write "Gracias por rellenar el formulario. Se ha enviado correctamente." end if


Nos podemos guiar por los comentarios para hacernos una idea del funcionamiento de este trozo de código. Básicamente se crea el objeto mail, que contendrá el correo que se va a generar, y se definen sus propiedades como el servidor de correo a utilizar, el destinatario o el asunto. Luego se envía y se realiza una sencilla tarea de detección de errores para saber si se pudo realizar la tarea con éxito o no y mostrar un mensaje adecuado para cada caso.

Nota: no se pretenden explicar los pormenores de este Control Activex del servidor, ya que hay una excelente documentación y ejemplos en la página web de la empresa que lo ha desarrollado. En caso de que se desee aprender algo más, por favor, dirigiros a la página www.aspemail.com o la del componente del que dispongáis.que dispongáis.

 Seguir navegando a partir aquí:
+ 2 manuales relacionados
+ 1 categoria relacionada
+ 8 comentarios (Añadir)
+ 8 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Dentro de Envío de formularios avanzado

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 8 comentarios revisados

 Comentario de Mr Web
16/7/03 
No me funcionó el código asi que le hice unas modificaciones y lo comparto con uds...

formu02.asp(pagina donde esta el formulario)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>.:FORMULARIO DE CONTACTO:.Untitled</title>
</head>

<body>
<form action="formu01.asp" method="POST">
Nombre:<input type="Text" name="nombre" size="50" maxlength="200">
<br>
Email:<input type="Text" name="email" size="20" maxlength="200">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

----------------------------------------

formu01.asp (pagina de envio del formulario)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
'creo el objeto correo
set mail = server.createObject("Persits.MailSender")
'configuro el mensaje
'señalo el servidor de salida para enviar el correo
mail.host = "mail.radioextremo.cl"
'indico la dirección de correo del remitente
mail.from = "info@radioextremo.cl"
'indico la dirección del destinatario del mensaje
mail.addAddress "webmaster@radioextremo.cl"

'Obtengo los datos del formulario
nombre = request.form("nombre")
email = request.form("email")
'compongo el cuerpo del mensaje
cuerpo = "Formulario De Nuestra Página Web"& VBNEWLINE & VBNEWLINE
cuerpo = cuerpo & "Nombre: " & nombre & VBNEWLINE
cuerpo = cuerpo & "Email: " & email
'mando el correo...
'indico el cuerpo del mensaje
mail.body = cuerpo
'lo envio
'aseguro que no se presenten errores en la página si se producen
On Error Resume Next
mail.send
if Err ><0 then
response.write "Error, no se ha podido completar la operación"
else
Request.Form("nombre")
'Declaro Saludo de despedida del visitante
saludo = "Gracias por escribirnos:" & nombre & ", el formulario se ha enviado correctamente"
'Muestro saludo
response.write saludo end if
%>
<html>
<head>
<title>.:GRACIAS POR ESCRIBIRNOS:.</title>
</head>
<body>
</body>
</html>


El ejemplo esta en la siguiente dirección:
http://www.radioextremo.cl/formu02.asp

El hecho de que existan páginas como desarrolloweb, hacen que los webmaster se interesen por automatizar procesos para los navegantes....
Saludos a ellos.

Cualquier duda a:
webmaster@radioextremo.cl

Ah, mi web por supuesto:
http://www.radioextremo.cl (Visítenla)

Atte: Mr web

 Comentario de roman berra
21/5/04 
Este articulo es justo lo que necesitaba. Andube buscando esto por dias.
Esta muy bien desarrollado y completo.No me queda mas que felicitarlos y agradecerles por su sapiencia y solidaridad para compartirla.

 Comentario de Fredy de la Cruz Santos
01/4/05 
Hola que tal el codigo que muestran si funciona pero quiera saber, el por que cuando se envia un mail con este codigo en los correos de Hotmail los envia a la Carpeta CORREO NO DESEADO quisiera saber como reparar esto.

 Comentario de Luther
24/8/05 
Creo q Deberian de Generalizar el Artículo y poner para todos los usuarios por que algunos no pueden crear el Objeto y asi no Funciona!

 Comentario de Eleuterio
14/10/05 
Me parece que esta muy bien estructurado y facil de entender ademas los ejemplos sirven de mucha ayuda para su visualización.

 Comentario de Rogger
13/1/06 
Por el problema de Hotmail que se envian los correos a los no deseados... tienes que configurar tu cuenta de hotmail para que no aplique los filtros de corrreo basura...

 Comentario de sergio gabriel
24/1/06 
yo lo he probado FUNCIONA DE 10, lo unico para salvaguardar que el email NO VAYA a correo no deseado en HOTMAIL, utilizo un codigo PHP no ASP, esto me asegura correo limpio. Sergio

 Comentario de hugo sanchez
01/5/07 
esta super su ejemplo lo unico q creo falto mencionar para muchos que no estamos muy adentrados aun con asp es que me parece que ¿se tiene que instalar el ASPMAIL no????para crear el objeto o ¿fuinciona asi tal cual esta el codigo?

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 8 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
+Envío de formularios avanzado
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia