* Versão do Oracle: 10g
* Sistema Operacional: windows
Caros amigos estou tentando fazer uma proc que envia e-mail para me avisar em agumas ocasioes, mas sem sucesso.
Abaixo segue a procedure que peguei aqui no forum mesmo:
Me aparece o erro abaixo
ORA-29278: erro transiente de SMTP:421 Service not availabe
CREATE OR REPLACE PROCEDURE send_mail IS
C UTL_SMTP.CONNECTION;
P_ORIGEM VARCHAR2(100) :='dsousa@empresa.com';
P_DESTINO VARCHAR2(100) :='dsousa@empresa.com';
P_COPIA VARCHAR2(100) :='dsousa@empresa.com';
P_TITULO VARCHAR2(100) :='teste';
P_ASSUNTO VARCHAR2(100) :='E-mail para teste Oracle: Douglas';
P_TEXTO VARCHAR2(200) :='teste de acentuação, lição, concessão, visão';
BEGIN
-- c:= utl_smtp.open_connection('rpc.empresa.com',25);
c:= utl_smtp.open_connection('rpc.empresa.com',587);
utl_smtp.helo(c, 'rpc.empresa.com');
-- utl_smtp.command (C, 'AUTH LOGIN');
-- utl_smtp.command (C, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(('dsousa@empresa.com')))));
-- utl_smtp.command (C, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(('123'))))); --> senha
UTL_SMTP.MAIL (C, ('<' || P_ORIGEM || '>')); /* E-mail de quem está mandando */
UTL_SMTP.RCPT (C, ('<' || P_DESTINO|| '>')); /* Para quem vou mandar */
UTL_SMTP.RCPT (C, ('<' || P_COPIA|| '>')); /* Para quem vou mandar */
--
utl_smtp.open_data(c);
UTL_SMTP.WRITE_RAW_DATA( c,UTL_RAW.CAST_TO_RAW('From:' ||P_ORIGEM||utl_tcp.CRLF));
UTL_SMTP.WRITE_RAW_DATA( c,UTL_RAW.CAST_TO_RAW('To:' ||P_DESTINO||utl_tcp.CRLF));
UTL_SMTP.WRITE_RAW_DATA( c,UTL_RAW.CAST_TO_RAW('Cc:' ||P_COPIA ||utl_tcp.CRLF));
UTL_SMTP.WRITE_RAW_DATA( c,UTL_RAW.CAST_TO_RAW('Subject:' ||P_ASSUNTO||utl_tcp.CRLF));
--
utl_smtp.write_data(c,' '||utl_tcp.CRLF);
utl_smtp.write_raw_data(c,utl_raw.cast_to_raw(utl_tcp.CRLF||P_TEXTO));
--
utl_smtp.close_data(c);
UTL_SMTP.QUIT (C);
--
END;
Qualquer dica e bem vinda.
Abs.