Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por rodrigobonela.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #83767
    rodrigobonela
    Participante

      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.
      Rodrigo

      #83770
      Avatar photoLeonardo Litz
      Participante

        Segue 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

        #83780
        rodrigobonela
        Participante

          Vlw aew Litz,

          Vou testar aqui…

          Caso tenha alguma dúvida, te aviso.

          Abç
          Rodrigo

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress