Como mandar los datos de un formulario a un correo

Mi pregunta es que yo quiero desarrollar un formulario en ASP y quisiera saber como mandar los datos ingresados en el formulario aun correo electrónico con el mismo formato o parecido al del formulario.

1 respuesta

Respuesta
1
Te presento un ejemplo de envío de email en .net, lo interesante de esto es que envías una plantilla html que puedes formatear como quieras:
System.IO.StringWriter ContenidoPaginaDestino = new System.IO.StringWriter();
Server.Execute("Plantilla.htm", ContenidoPaginaDestino);//copia el cuerpo de la pagina web que ejecutamos
Cuerpo = ContenidoPaginaDestino.ToString();
//Sustituimos las apariciones de datos en el envio.
Cuerpo = Cuerpo.Replace("f_nombre", rqNombre);
Cuerpo = Cuerpo.Replace("f_apellidos", rqApellidos);
System.Net.Mail.MailMessage mensaje = new System.Net.Mail.MailMessage();
//--------Creamos el mensaje mediante el servicio de net.mail.mailmessaje-----
mensaje.Body = Cuerpo;//cuerpo del mensaje
mensaje.IsBodyHtml = true;//Es texto con caracteres html, de lo contrario lo tomara como texto
mensaje.ReplyTo = new System.Net.Mail.MailAddress(rqEmail);
mensaje.From = new System.Net.Mail.MailAddress("[email protected]");//de quien es el mensaje
mensaje.To.Add([email protected]);//para [email protected]
mensaje.Subject = rqAsunto;//Asunto
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
//--------Definimos el servidor de correo y sus caracteristicas---------------
smtp.Port = 25;//puerto
smtp.Host = "servidordecorreo.com";//servidor de correo
smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "111111");//credenciales si son necesarias
smtp.Send(mensaje);//envio del mensaje
La plantilla html sería de esta manera:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<table border="0" cellspacing="2" cellpadding="1" style="text-align:center; width: 929px;">
<tr>
<td colspan="2" align="center" class="tabla_titulo">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="background-color:#FFFFFF">
<tr>
<td style="width:100%; background-color:#E8E8E8" class="cabecera" colspan="2">Formulario</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width:24%; text-align:right" class="textoazul" valign="top">Nombre:</td>
<td class="textonegro" align="left">f_nombre</td>
</tr>
<tr>
<td style="width:24%; text-align:right" class="textoazul" valign="top">Apellidos:</td>
<td class="textonegro" align="left">f_apellidos</td>
</tr>
</table>
</body>
</html>
Espero que te sirva de ayuda esto, sino, no dudes en preguntar.
Quisiera que me hiciera el favor companero de decirme donde va cada código por favor si no es mucha molestia
¿También quisiera saber
que datos tengo que poner en la credencial los datos de quien manda el correo?
Tienes que crearte una página aspx con la opción de separar el código, aquí tendrás que poner el formulario que quieres enviar, la primera parte del código que te he puesto va en el code behind de esta página y se activará al pulsar sobre el botón de enviar del formulario.
La plantilla html es una página aparte que simplemente contiene el código que te he puesto, que tienes que modificar para adaptar al formato que quieras darle al correo que quieres mandar.
¿Y yo necesito ingresar datos para ingresarlos en el formulario y que se envíen en el correo?
No, los puedes mandar directamente, en vez de hacer una página con un formulario, simplemente haz una página que mande un correo, la función que te he puesto debe de ir asociada a un evento, puede ser al click de un botón o en el page load, por ejemplo.
En la parte que pone:
Cuerpo = Cuerpo.Replace("f_nombre", rqNombre); 
Cuerpo = Cuerpo.Replace("f_apellidos", rqApellidos);
RqNombre y rqApellidos son ejemplos de datos que puedes poner.
Quiere decir que no puedo ingresar datos en "f_nombre" por que necesito que cambien los valores de dichas cosas por que es como una solicitud la que necesito enviar por el correo.
Puedes poner un valor fijo en f_nombre, rqNombre puede ser una variable o una constante de cadena, f_nombre simplemente identifica en que lugar de la plantilla HTML se va a poner el dato correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas