Pregunta

Bien, en resumen, básicamente ya tenemos un sistema en el lugar donde se genera el contenido HTML para los correos electrónicos. No es perfecto, pero funciona.

De esto, necesitamos poder derivar una alternativa de texto sin formato para el correo electrónico. Estaba pensando en saltar instantáneamente y crear un RegEx para quitar las etiquetas <*> del mensaje, pero luego me di cuenta de que esto no sería bueno porque necesitamos algo de la información de formato (párrafos, saltos de línea, imágenes etc).

NOTA: estoy de acuerdo con enviar el correo y configurar vistas alternativas, etc., esto es solo para obtener texto sin formato de HTML.

Entonces, estoy reflexionando sobre algunas ideas. Publicaré uno como respuesta para ver qué piensan ustedes, pero pensé que lo abriría al piso. :)

Si necesita más aclaraciones, grite.

Muchas gracias

Rob

¿Fue útil?

Solución

Mi solución

OK, ¡así que aquí está! ¡Pensé en una solución a mi problema y funciona de maravilla!

Ahora, estos son algunos de los objetivos que quería establecer:

  • Todo el contenido de los correos electrónicos debe permanecer en las páginas ASPX (como lo hace actualmente el contenido HTML).
  • No quería que el código del cliente hiciera nada más que decir " SendMail("PageX.aspx") " ;.
  • No quería escribir demasiado código.
  • Quería mantener el código lo más semánticamente correcto posible (¡no REALMENTE hacks locos!

El proceso

Entonces, esto es lo que terminé haciendo:

  • Vaya a la página maestra para ver los mensajes de correo electrónico. Cree un ASP.NET Control MultiView . Este control tendría dos vistas: HTML y Texto sin formato.
  • Dentro de cada vista, agregué marcadores de posición de contenido para el contenido real.
  • Luego tomé todo el código ASPX existente (como encabezado y pie de página) y lo pegué en la Vista HTML. Todo, DocType y todo. Esto hace que VS se queje un poco. Ignórelo.
  • Luego, por supuesto, agregué nuevo contenido a la vista de Texto sin formato para replicar mejor la vista HTML en un entorno de Texto sin formato.
  • Luego agregué un código al Maestro Page_Load, comprobando el parámetro QueryString " escriba " que podría ser " html " o " texto " ;. Se cae a & Quot; texto & Quot; Si no hay ninguno presente. Dependiendo del valor, cambia la vista.
  • Luego voy a las páginas de contenido y agrego nuevos marcadores de posición para los equivalentes de Texto sin formato y agrego texto según sea necesario.
  • Para hacer mi vida más fácil, luego sobrecargué mi método SendMail para obtener la respuesta para la página requerida, pasando " type=html " y " type=text " y crear AlternateView según corresponda.

En resumen

Entonces, en resumen:

  • Las Vistas separan el " views " del contenido (HTML y texto).
  • Una página maestra cambia automáticamente la vista según una QueryString.
  • Las páginas de contenido son responsables de cómo se ven sus vistas.

¡Trabajo hecho!

Si algo de esto no está claro, grite. Me gustaría crear una publicación de blog sobre esto en algún momento con más detalle.

Otros consejos

Mi idea

Cree una página basada en el contenido HTML y recorra el árbol de control. Luego puede elegir el texto de los controles y manejar diferentes controles según sea necesario (por ejemplo, use texto ALT para imágenes, & Quot; _____ & Quot; para HR, etc.).

Puede asegurarse de que el correo HTML esté en formato XHTML para poder analizarlo fácilmente con las herramientas XML estándar y luego crear su propio serializador DOM que genere texto sin formato. Todavía sería mucho trabajo cubrir XHTML general, pero para un subconjunto limitado que planea usar en el correo electrónico podría funcionar.

Alternativamente, si no le importa cambiar a otro programa, puede usar el interruptor -dump para el navegador web lynx.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top