Usuario
Enviar el contenido de un panel por e-mail

Pregunta
-
Buen día compañeros del foro
Necesito saber si es posible enviar el contenido de un objeto Panel o algun otro contenedor a través de un e-mail. El contenido del panel es texto normal, Labels, imágenes y Gridview's con datos de un cliente. Es posible enviar el contenido cargado en el panel a través de un correo electrónico (y que el contenido del correo sea HMTL para que la persona que recibe el correo pueda verlo exactamente a como se carga en el Panel)?... el método para enviar correos ya lo tengo.
Si no es posible enviar el contenido de un Panel, cómo podría hacer para enviar la información de algún contenedor a través de e-mail?
Gracias por su colaboración.
Todas las respuestas
-
hola
lo que tendrias que hacer es armar el html que le de formato a la informacion que quieres enviar
o sea una transformacion directa no hay, lo que debes hacer es armar el html usando tablas, y demas controles que html soporte, para luego en cada celda de la tabla ir ubicando el contenido de tus controles textbox del formulario
seria una tecnica como la aplicada en este link
(ASP.NET)Sending mail using SMTP in HTML format using IP settings in web.config file
seria armar el html como lo hace en la propiedad mailMsg.Body
es mas igual no te aconsejo que lo armes alli mismo, por ahi define el template del html y luego reemplaces en cada lugar por el dato
no has especificado lenguaje que utilzias por eso pongo el codigo en c#, en todo caso se puede traducir
string htmltemplate = @"<html>
<body>
<table>
<tr>
<td>Nombre Cliente:</td>
<td>{0}</td>
</tr>
<tr>
<td>Direccion:</td>
<td>{1}</td>
</tr>
</table>
</body>
</html>";
string mensaje = htmltemplate.Replace("{0}", txtNombreCliente.Text);
mensaje = mensaje.Replace("{1}", txtDireccion.Text);
mailMsg.Body = mensaje;
de esta fotrma veras es mas simple de armar el template e ir reemplazando donde correspondapor el valor de del control en el formulario
- por supuesto para la grilla la unica que queda es que recorras cada row y en cada iteracion armes el html con los datos
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
hola
lo que tendrias que hacer es armar el html que le de formato a la informacion que quieres enviar
o sea una transformacion directa no hay, lo que debes hacer es armar el html usando tablas, y demas controles que html soporte, para luego en cada celda de la tabla ir ubicando el contenido de tus controles textbox del formulario
seria una tecnica como la aplicada en este link
(ASP.NET)Sending mail using SMTP in HTML format using IP settings in web.config file
seria armar el html como lo hace en la propiedad mailMsg.Body
es mas igual no te aconsejo que lo armes alli mismo, por ahi define el template del html y luego reemplaces en cada lugar por el dato
no has especificado lenguaje que utilzias por eso pongo el codigo en c#, en todo caso se puede traducir
string htmltemplate = @"<html>
<body>
<table>
<tr>
<td>Nombre Cliente:</td>
<td>{0}</td>
</tr>
<tr>
<td>Direccion:</td>
<td>{1}</td>
</tr>
</table>
</body>
</html>";
string mensaje = htmltemplate.Replace("{0}", txtNombreCliente.Text);
mensaje = mensaje.Replace("{1}", txtDireccion.Text);
mailMsg.Body = mensaje;
de esta fotrma veras es mas simple de armar el template e ir reemplazando donde correspondapor el valor de del control en el formulario
- por supuesto para la grilla la unica que queda es que recorras cada row y en cada iteracion armes el html con los datos
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina
En el momento lo estoy haciendo como indicas, pero lo que realmente quisiera saber si es posible tomar el código HTML de alguna página o algún contenedor y enviarlo tal cual por e-mail.
Gracias. -
hola
lo que podrias hacer es embeber un archico html como recurso de tu assembly para luego leerlo desde codigo
para ello agrega el archivo html al proyecto en el VS, y luego si analzias la propeidades imagen
veras que hay una que dice Build Action, bien cambiala a "Embedded Resource"
de esta forma el archivo pasara a formar parte del assembly
podrias usar alguna de estas tecnicas para leerlo
Using Resources in Visual Studio .NET
Understanding Embedded Resources in Visual Studio .NET
Save and load image from resource file
ResourceManager
Embedding and Using Resources in C#
Code: Retrieving an Image that is an Embedded Resource (Visual C#)
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina