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.
- Inicie sesión para enviar comentarios
Amigo alguna solucion para
Subido por Anonimo (no verificado) el 4 Octubre, 2017 - 22:49
Amigo alguna solucion para adjuntar el archivo al correo, y solucionar esto, actualmente tengo el mismo problema
Me paso lo mismo. El…
Subido por leogarvas el 24 May, 2021 - 15:36
Me paso lo mismo. El problema fue en el begin_mail, no tenia todos los parametros. Para mas detalles escriban a leogarvas@gmail.com