Adjuntar archivo para enviar a correo oracle

1 reply [Último envío]
Offline
Joined: 04/12/2011
Puntos: 3

 Hola a todos, me presento soy un programador en pl/sql, y necesito de su ayuda, estoy haciendo un package que crea unos archivos de extencion csv en donde despues de generarlo ese archivo devo enviarlo por correo a unas direcciones de correo previamente configuradas, mi promebla es el siguiente al enviar el correo utilizando la funcion  UTL_SMTP.write_data he podido enviar el correo a mis destinatarios, pero el problema que tengo es que solo el archivo previamente creado y rellenado con datos y luego cerrado solo lo envia como cadena de texto, adjunto el procedimiento que envia el correo con en adjuntado de archivo

 

 

PROCEDURE pBeginAttachment(
      ptConn         IN OUT NOCOPY UTL_SMTP.connection,
      pvMimeType     IN VARCHAR2 DEFAULT 'text/plain',
      pbInline       IN BOOLEAN  DEFAULT TRUE,
      pvFilename     IN VARCHAR2 ,
      pvTransferEnc  IN VARCHAR2 DEFAULT NULL) 
   IS
   /*
    %desc Comienza un attachment
    %parm ptConn > conexion SMTP
    %parm pvMimeType > tipo MIME de los datos
    %parm pbInline > indica si se escribe en una sola linea
    %parm pvFilename > nombre del archivo a escribir
    %parm pvTransferEnc > ni idea que es
    %autr JCD / Juan Carlos Daille (Tecnova)
    %vers 1.0 / 10ago'11 / JCD
   */
    lfArchivo  utl_file.file_type;
      lrNombreTmp ktypes.Directorio;
      lnRutaArchivo NUMBER:=131;
      crlf         VARCHAR2(2)  := chr(13)||chr(10);
   BEGIN
--      pWriteBoundary(ptConn);
      --pWriteMimeHeader(ptConn, 'Content-Type', pvMimeType); 
 
      IF (pvFilename IS NOT NULL) THEN
         IF (pbInline) THEN
            pWriteMimeHeader( ptConn, 'Content-Disposition','inline; filename="'||pvFilename||'"');
         ELSE
            
            pWriteMimeHeader( ptConn, 'Content-Disposition','attachment; filename="'||pvFilename||'"');
         END IF;
      END IF; 
 
      IF (pvTransferEnc IS NOT NULL) THEN
         pWriteMimeHeader(ptConn, 'Content-Transfer-Encoding', pvTransferEnc);
      END IF;
     
      UTL_SMTP.write_data(ptConn,'MIME-Version: 1.0'|| crlf ||   -- Use MIME mail standard
    'Content-Type: multipart/mixed;'|| crlf ||
    ' boundary="-----SECBOUND"'|| crlf ||
    crlf ||
 
    '-------SECBOUND'|| crlf ||
    'Content-Type: text/plain;'|| crlf ||
    'Content-Transfer_Encoding: 7bit'|| crlf ||
    crlf ||
    'some message text'|| crlf ||   -- Message body
    'more message text'|| crlf ||
    crlf ||
 
    '-------SECBOUND'|| crlf ||
    'Content-Type: text/plain;'|| crlf ||
    ' name="'||pvFilename||'"'|| crlf ||
    'Content-Transfer_Encoding: 8bit'|| crlf ||
    'Content-Disposition: attachment;'|| crlf ||
    ' filename="'||pvFilename||'"'|| crlf ||
    crlf ||
    'CSV,file,attachement'|| crlf ||   -- Content of attachment
    crlf ||
 
    '-------SECBOUND--'      );   -- End MIME mail
   END pBeginAttachment;
 
en todo caso funciona el archivo de conexion al servidor, asi me llega el correo al destinatario
 
Content-Disposition: attachment; filename="inf_para_rescate_20111202.csv"

MIME-Version: 1.0

Content-Type: multipart/mixed;

 boundary="-----SECBOUND"

 

-------SECBOUND

Content-Type: text/plain;

Content-Transfer_Encoding: 7bit

 

some message text

more message text

 

-------SECBOUND

Content-Type: text/plain;

 name="excel.csv"

Content-Transfer_Encoding: 8bit

Content-Disposition: attachment;

 filename="excel.csv"

 

CSV,file,attachement

 

-------SECBOUND--Cantidad de Registros procesados 10 Nombre de Archivo:

inf_para_rescate_20111202.csv

-------7D81B75CCC90D2974F7A1CBD--

Disculpando el largo de mi post pero ya no se que hacer, de ante mano gracias.

 

Anonimo (no verificado)

Amigo alguna solucion para adjuntar el archivo al correo, y solucionar esto, actualmente tengo el mismo problema

 



 

  BI   |    CRM     |    CMS    |    Tendencias en software empresarial    |    Cloud computing  |    Software libre    |   Internet    |    Movilidad y apps