jueves, 9 de enero de 2014

Incrustar imagenes en un correo HTML

Se pueden mandar correos por smtp en navision utilizando la codeunit SMTP Mail y el objeto Automation 'Microsoft Navision Mail'.SmtpMessage que viene con la instalacion del navision clásico.
El cuerpo de los correos se puede mandar en html indicandolo en una de las propiedades que tiene el objeto. Si queremos enviar imágenes incrustadas dentro del mensaje en esta web tenemos la
explicacion de los requisitos necesarios para que nuestra imagen este bien formada.

Con esta otra web que convierte imagenes a base64, podemos convertir cualquiera de nuestras imágenes a texto html necesario.
Si agregamos el texto resultante al cuerpo de nuestro mensaje tendremos una imagen incrustada. Pero no vamos a dejar el post aqui, lo que yo propongo, consiste en guardar este resultado en un archivo de texto y leerlo cuando vayamos a utilizarlo para incorporarlo a nuesto correo.Es una de las opciones, tambien se puede guardar en un campo MEMO de la base de datos (Lo explicaremos en un próximo post) o simplemente ponerlo a piñon en una variable de texto.

Las variables:
Name DataType Subtype Length
btResultado BigText    
NombreFichero Text   1024
Fichero File    
ISLector InStream    
CuerpoHTML BigText    
Texto Text   1024
i Integer    

//Abrimos el fichero, lo recorremos y lo guardamos en un BigText
IF EXISTS(NombreFichero) THEN BEGIN
    IF Fichero.OPEN(NombreFichero) THEN BEGIN
       CLEAR(CuerpoHTML);
       Fichero.TEXTMODE := TRUE;
       Fichero.CREATEINSTREAM(ISLector);
       CuerpoHTML.READ(ISLector);
       i := 1;
       WHILE i <= CuerpoHTML.LENGTH DO BEGIN
          CuerpoHTML.GETSUBTEXT(Texto,i,MAXSTRLEN(Texto));
          i:=i+MAXSTRLEN(Texto);
          btResultado.ADDTEXT(Texto);
       END;
    END;
END;

1 comentario:

  1. Excelente, no sabia como utilizar el SMTP Mail, pero ahora ya esta bien explicado, lo compartiré con algunos colegas que tenian ciertas dudas al respecto.

    saludos!

    ResponderEliminar