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;