Oracle Stored Procedure para enviar mail

Una manera más para enviar correos con el ip del servidor.

Aquí un breve ejemplo del store:




CREATE OR REPLACE PROCEDURE "TESTMAIL" ( pivcMailIp IN VARCHAR2
,pinPort IN NUMBER
,pivcFromName IN VARCHAR2
,pivcFromEmail IN VARCHAR2
,pivcToName IN VARCHAR2
,pivcToEmail IN VARCHAR2
,pivcSubject IN VARCHAR2
,pivcBody IN VARCHAR2) IS
objConnection utl_smtp.connection;
vrData RAW(32767);
BEGIN
objConnection := UTL_smtp.open_connection(pivcMailIp,pinPort);
UTL_smtp.ehlo(objConnection, pivcMailIp);
UTL_smtp.mail(objConnection, pivcFromEmail);
UTL_smtp.rcpt(objConnection, pivcToEmail);
UTL_smtp.open_data(objConnection); /* ** Sending the header information */
UTL_smtp.write_data(objConnection, 'From: ' '"' pivcFromName '" <' pivcFromEmail '>' UTL_tcp.CRLF); UTL_smtp.write_data(objConnection, 'To: ' '"' pivcToName '" <' pivcToEmail '>' UTL_tcp.CRLF); UTL_smtp.write_data(objConnection, 'Subject: ' pivcSubject UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'MIME-Version: ' '1.0' UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Content-Type: ' 'text/html; charset=utf-8' UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Content-Transfer-Encoding: ' '8bit' UTL_tcp.CRLF); /* ** End of header information */
UTL_smtp.write_data(objConnection, UTL_tcp.CRLF); /* ** Actual body is sent here */
vrData := utl_raw.cast_to_raw(pivcbody);
UTL_smtp.write_raw_data(objConnection, vrData); /* ** Connection is closed here */
UTL_smtp.close_data(objConnection); UTL_smtp.quit(objConnection);
EXCEPTION
WHEN UTL_smtp.transient_error OR UTL_smtp.permanent_error THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);
WHEN OTHERS THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);
END testMail;


Comentarios

shahmat ha dicho que…
En tu código...

Cómo tratar las comillas dobles en la siguiente línea: UTL_smtp.write_data(objConnection, 'From: ' '"' pivcFromName '" <' pivcFromEmail '>' UTL_tcp.CRLF); UTL_smtp.write_data(objConnection, 'To: ' '"' pivcToName '" <' pivcToEmail '>' UTL_tcp.CRLF); UTL_smtp.write_data(objConnection, 'Subject: ' pivcSubject UTL_tcp.CRLF);?

Ya que no compila.
Anónimo ha dicho que…
como podria enviar el texto del mensaje pero que sea subrayado y en negrita?
Unknown ha dicho que…
Muchas gracias, me fue de mucha utilidad.