Enviar un Email mediante ASP y un formulario

Utilizando el componente CDONTS vamos a enviar un correo electrónico desde ASP en nuestro servidor.

La forma de hacerlo es relativamente sencilla, de hecho, demasiado sencilla, ya que habría que mejorarla bastante. La idea es crear una página única que contenga un formulario html y una función ASP que nos envíe el email, luego vosotros ya la modificaréis a vuestro gusto.

El email se envía mediante SMTP validado, es importante remarcarlo ya que nuestros servidores de alojamiento requieren el envío validado para funcionar.

Pasemos a ver el código:

<%
If Request.ServerVariables("REQUEST_METHOD")="POST" Then
'ENVÍO DEL FORMULARIO DE CONTACTO
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(sch & "sendusing") = 2
'.Item(sch & "smtpserverpickupdirectory") = "C:inetpubmailrootpickup"
.Item(sch & "smtpserver") = "localhost"
.Item(sch & "smtpserverport") = 25
.Item(sch & "smtpconnectiontimeout") = 40
.Item(sch & "smtpauthenticate") = 1
.Item(sch & "sendusername") = "La_dirección_de_correo_que_envía"
.Item(sch & "sendpassword") = "contraseña_del_correo"
.update
End With

Set MailObject = Server.CreateObject("CDO.Message")
Set MailObject.Configuration = cdoConfig
'MailObject.BodyFormat = 0
'MailObject.mailformat = 0
MailObject.From = "Dirección_Remitente"
MailObject.To = "Dirección_Destinataria"
MailObject.Subject = "Asunto_del_email"
Cuerpo = "Nombre: " & Request.Form("nombre") & "
"
Cuerpo = Cuerpo & "Email: " & Request.Form("email") & "
"
Cuerpo = Cuerpo & "Comentario: " & Request.Form("comentario") & "
"
MailObject.HTMLBody = Cuerpo
MailObject.Send
Set MailObject = Nothing
Set cdoConfig = Nothing
End If
%>

La línea "sendusername" es la encargada de indicar al servidor la cuenta de correo que necesitará para validar en el servidor SMTP.
La línea "sendpassword" es la contraseña de dicha cuenta de correo electrónico.
Los campos "From" y "To" son las direcciones de email de envío y recepción respectivamente, deben de ser direcciones válidas para que el código no lanze un error en pantalla.
La variable "Cuerpo" recoge los campos del formulario para luego pasarlos a "HTMLBody".

Ahora vemos la parte del formulario:

 



















Nombre:
Email:
Comentario:
 

 

Como podemos observar, es un formulario normal y corriente.

Les dejo aquí el fichero para que puedan descargarlo y hacer pruebas en local, cualquier duda pueden utilizar los comentarios para preguntar.

Descargar Ejemplo