• Publicidad

Escribir correo con contenido HTML y CSS (tabla dinámica)

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Escribir correo con contenido HTML y CSS (tabla dinámica)

Notapor jero2528 » 2015-02-16 12:31 @563

Saludos Perleros.

Hoy quiero preguntarles ¿Cómo puedo hacer para generar una especie de plantilla que debería hacer una tabla con parámetros definidos por algún script?

Me explico: Tengo que generar ciertos correos que tienen información que debe presentarse en una tabla; actualmente se hace con un html demasiado básico. La idea es que estos correos se vean más agradables para las personas que los reciben, pero el problema más grande es que por cada reporte siempre se escribe el mismo código de la tabla html.

Lo que quisiera es armar una especie de librería o un script que genere dinámicamente, por ejemplo, las columnas, filas y, obviamente, el contenido de cada celda de una tabla. Con eso centralizaría la construcción de las tablas.

Investigué sobre el Módulo HTML::Table es el que más se acerca a lo que busco, pero no logro entender aún si es posible aplicar CSS usando el módulo. Tampoco sé de qué manera lo podría usar ya que no he visto ningún ejemplo.

¿Acaso es posible usar, por ejemplo, directorio: css, javascript, html, source en donde el source contiene un .pl que simplemente obtiene los datos que necesita de los otros directorios para escribir la tabla?

Ejemplo de lo que hago actualmente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach $row_v_query (@$v_query) {
  2.     ( $UPBW, $StartDate, $EndDate, $SaleDate, $Estado ) = @$row_v_query;
  3.     $i++;
  4.     $mensaje .= "<table style='border:1px solid #CCC; '>
  5.                                                         <tr><td colspan='0'><b style='font-size:13px; color=#333'>EVENTO $i</b></td></tr>
  6.                                                                 <tr><td><b>FECHA VENTA</b></td><td>$SaleDate</td></tr>
  7.                                                                 <tr><td><b>FECHA INICIO</b></td><td>$StartDate</td></tr>
  8.                                                                 <tr><td><b>FECHA FINALIZACION</b></td><td>$EndDate</td></tr>
  9.                                                                 <tr><td><b>ESTADO ACTUAL</b></td><td>$Estado</td></tr>
  10.                                                                 <tr><td><b>UP TEMPORAL</b></td><td>$UPBW</td></tr>
  11.                                                                 </table><br>\n";
  12.     $mensaje .= "<table style='clear:both; margin:40px; border:1px padding:9px'></table>\n";
  13. }
  14.  
  15. $mensaje .= "$DATACAMBIO<br><br>";
  16. $mensaje .= "<table align='center' style='clear:both; margin:30px;
  17.                                                 border:1px padding:10px'></table>\n";
  18. $mensajetotal = "$mensajeinicio2 $mensajesaludo $mensaje $mensajefinal";
  19.  
  20. }
  21. $destinatarios .= '[email protected]';
  22. print "$destinatarios\n";
  23. send_mail( "Equipo de Gestion  <gestion\@example.com>",
  24.     "$destinatarios", '127.0.0.1', "EVENTO TEMPORAL $ACCION\ADO $CUSTOMER (SID=$SERVICEIDTEMP)", $mensajetotal );
  25.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y así está cada .pl.

Espero me puedan ayudar y, como siempre, de antemano gracias por la atención prestada :)
Saludos,

Jero2528
Avatar de Usuario
jero2528
Perlero nuevo
Perlero nuevo
 
Mensajes: 50
Registrado: 2014-05-14 15:43 @697
Ubicación: Bogota, Colombia

Publicidad

Re: Escribir correo con contenido HTML y CSS (tabla dinámica

Notapor explorer » 2015-02-16 20:00 @875

Por estos foros ya hemos hablado de sistemas de plantillas, como Template Toolkit o HTML::Template.

También, cómo generar un mensaje con contenido HTML (no es el único hilo).

El resumen sería: se pone el código HTML en una plantilla, en un archivo externo. Luego, dentro del programa, cargas la plantilla, actualizas los campos dinámicos, y luego pides al módulo de plantillas que genere el resultado, lo almacenas en una variable escalar, y eso es lo que mandas por correo.

Otro ejemplo: Enviar correo por Perl y me da problemas.

Desde luego, en Perl, tienes, literalmente, docenas de opciones.

El código que muestras es muy... de PHP... ;)

Es cierto que con módulos como HTML::Table puedes pedir que te genere la mayor parte del código, pero si resulta que solo necesito modificar una parte pequeña, pues entonces es preferible usar un sistema de plantillas.

En tu caso, veo que hay variables escalares en buena parte del código HTML, rellenando la tabla. Ahí sí que merece la pena usar algo como HTML::Table (no es el único, por supuesto). Con este módulo generas la parte de la tabla. Luego, lo que sí puedes hacer, es meter la tabla generada dentro de una plantilla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados