Pular para o conteúdo

Fóruns SQL e PL/SQL Trigger que envia email Trigger que envia email

#85194
marcelomirandola
Participante

    Bom dia.
    Justamente pelo fato de você reutilizar, o certo seria você criar uma procedure com os parametros de entrada e depois chamá-la através de triggers.

    Eu uso esta aqui:

    CREATE OR REPLACE PROCEDURE SEND_MAIL (origem in
    varchar2,
    destino in varchar2,
    assunto in varchar2,
    mensagem in varchar2) is
    conn utl_smtp.connection;
    mailmsg varchar2(2000);
    begin
    conn := utl_smtp.open_connection(‘IP’,PORTA);
    utl_smtp.helo(conn, ‘DOMINIO’);
    utl_smtp.mail(conn, destino);
    utl_smtp.rcpt(conn, destino);
    utl_smtp.open_data(conn);
    utl_smtp.write_data(conn,’From: ‘||origem||”||utl_tcp.CRLF);
    utl_smtp.write_data(conn,’Subject: ‘);
    utl_smtp.write_raw_data(conn,utl_raw.cast_to_raw(assunto||utl_tcp.CRLF));
    utl_smtp.write_data(conn, ‘MIME-version: 1.0’ ||utl_tcp.CRLF);
    utl_smtp.write_data(conn, ‘Content-Type:text/html; charset=iso-8859-1’||utl_tcp.CRLF);
    utl_smtp.write_data(conn, ‘Content-Transfer-Encoding: 8bit’||utl_tcp.CRLF);
    utl_smtp.write_raw_data(conn,utl_raw.cast_to_raw(utl_tcp.CRLF||mensagem));
    utl_smtp.close_data(conn);
    utl_smtp.quit(conn);
    EXCEPTION WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
    begin
    utl_smtp.quit(conn);
    exception
    WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
    null;
    end;
    send_mail (‘erro’,’DESTINO-DO-ERRO’,’Erro no envio para ‘||destino,mensagem);
    WHEN OTHERS THEN
    send_mail (‘erro’,’DESTINO-DO-ERRO’,’Erro no envio para’||destino,mensagem);
    end;