- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por rodrigobonela.
-
AutorPosts
-
17 de novembro de 2008 às 1:06 am #83767rodrigobonelaParticipante
Boa noite galera…
Seguinte,
To precisando fazer uma trigger que quando há alguma alteração em uma tabela essa trigger execute uma procedure que envia um e-mail informando as alterações feitas…
Alguém poderia ajudar-me?
Abraço a todos.
Rodrigo17 de novembro de 2008 às 4:26 am #83770Leonardo LitzParticipanteSegue abaixo uma procedure que utilizo para enviar e-mail.
Só é necessário que o servidor de banco de dados consiga “enxergar” o servidor de e-mail.
Se vc utilizar e-mail autenticado, a variavel vcd_autentica deverá esta com o valor= ‘S’, caso contrario mude para ‘N’.
segue abaixo um exemplo, compile ele e execute-o
CREATE OR REPLACE PROCEDURE envia_email(ptx_emitente IN VARCHAR2 DEFAULT NULL,
ptx_destinatario IN VARCHAR2,
ptx_subject IN VARCHAR2,
ptx_body IN CLOB) AS----Leonardo Litz em 09/05/2007 versão inicial vnr_servidor VARCHAR2(60):='IP DO SERVIDOR DE E-MAIL'; l_mail_conn utl_smtp.connection; vnr_port NUMBER := 25; vcd_autentica VARCHAR2(1) := 'S'; vtx_usuario VARCHAR2(60) := 'USUARIO DE SERVIDOR DE E-MAIL'; vtx_senha VARCHAR2(60) := 'SENHA DO USUARIO DE SERVIDOR DE E-MAIL';
BEGIN
l_mail_conn := utl_smtp.open_connection(TRIM(vnr_servidor), vnr_port); utl_smtp.helo(l_mail_conn, TRIM(vnr_servidor)); IF (vcd_autentica = 'S') THEN ---atenticação no servidor de e-mail utl_smtp.command(l_mail_conn, 'AUTH LOGIN'); utl_smtp.command(l_mail_conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(vtx_usuario)))); utl_smtp.command(l_mail_conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(vtx_senha)))); END IF; utl_smtp.mail(l_mail_conn, ptx_emitente); utl_smtp.rcpt(l_mail_conn, ptx_destinatario); utl_smtp.open_data(l_mail_conn); utl_smtp.write_data(l_mail_conn, 'Content-Type: text/html; charset=iso-8859-1' || utl_tcp.crlf || 'Subject : ' || ptx_subject || chr(13) || chr(10)); utl_smtp.write_data(l_mail_conn, 'To : ' || chr(13) || chr(10)); utl_smtp.write_data(l_mail_conn, utl_tcp.crlf || utl_tcp.crlf || utl_tcp.crlf || ptx_body); utl_smtp.close_data(l_mail_conn); utl_smtp.quit(l_mail_conn);
EXCEPTION
WHEN sys.utl_smtp.transient_error THEN
— htp.p(SQLERRM);
NULL;WHEN sys.utl_smtp.permanent_error THEN -- htp.p(SQLERRM); NULL;
END envia_email;
Vlw Leonardo Litz
17 de novembro de 2008 às 5:47 pm #83780rodrigobonelaParticipanteVlw aew Litz,
Vou testar aqui…
Caso tenha alguma dúvida, te aviso.
Abç
Rodrigo -
AutorPosts
- Você deve fazer login para responder a este tópico.