C sharp - Plantilla html

 
Vista:

Plantilla html

Publicado por Porthos (2 intervenciones) el 27/09/2006 21:52:28
Buenas tardes a todos:

Mi problema básicamente es el siguiente. Necesito utilizar un plantilla html (ubicada en una ruta específica en el directorio donde irá el sitio), para crear un correo electrónico, cambiar algunos campos y enviarlo. Por ejemplo tener en la plantilla algo como Nombre:{NombreUsuario} y que en el código, tome la plantilla y pueda cambiar "NombreUsuario" por el valor correspondiente y posteriormente poder enviar el correo. La idea es no tener quemado en el código la estructura del mensaje, sino que pueda tener un plantilla que puedo estar modificando constantemente.

Muchas Gracias por su ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Plantilla html

Publicado por Porthos (2 intervenciones) el 28/09/2006 21:06:02
Pues realmente era más sencillo de lo que pensé. Simplemente abro el archivo html(la plantilla) con una variable StreamReader y luego copio todo el contenido del html en una variable StringBuilder(sb).
Luego sólo debo reemplazar el texto [NombreCliente] por su respectivo valor(sb.Replace("[NombreCliente]",cliente)). Incluso fue posible parametrizar las imágenes de la plantilla (<img src=[ImagenEncabezado]...>).
Para enviar el correo, devuelvo sb.ToString(). El código:

public StringBuilder CrearMensajeEntregaClave(string Plantilla, string nombreCliente, string URL)
{

//Plantilla = Environment.CurrentDirectory + Plantilla;
StreamReader archivo = new StreamReader(Plantilla);
StringBuilder sb = new StringBuilder();
sb.Append(archivo.ReadToEnd());
archivo.Close();

sb.Replace("[NombreCliente]", nombreCliente);
sb.Replace("[URL]", URL);
sb = CambiarParametrosEmail(sb);
return sb;
}

public StringBuilder CambiarParametrosEmail(StringBuilder sb)
{
sb.Replace("[Estilo]",fileStyle);
sb.Replace("[ImagenEncabezado]",imgEncabezado);
sb.Replace("[HoraEnvio]", DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString());
sb.Replace("[ImagenPie]",imgPie);
return sb;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar