trigger envio de e-mail
Citação de andre.pegorin em 25/11/2022, 12:56-- ESTA TRIGGER DISPARA UM E-MAIL QUANDO UM NOVO PRODUTO É CRIADO PARA O EMAIL CADASTRADO
PROMPT CREATE OR REPLACE TRIGGER trg_NOME_TRIGGER
CREATE OR REPLACE TRIGGER trg_NOME_TRIGGER
AFTER INSERT
ON produto
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
v_html clob;
retorno varchar2(20000);begin
v_html:= '<html>
<head>
<title>Novo produto cadastrado</title>
</head>
<body>
<div style="text-align: center;">
<font color = red size = 5><b>Favor analisar novo produto cadastrado</b></font><br><br></div>
<div style="text-align: center;">
<table border="1" cellpadding="1" cellspacing="1" style="width: 100%">
<tbody><tr>
<td><b><font size = 4>Codigo do produto</font></b></td>
<td><b><font size = 4>Descricao do produto</font></b></td>
</tr><tr>
<td><font size = 3>'||:new.cd_produto||'</font></td>
<td><font size = 3>'||:new.ds_produto||'</font></td>
</tr></tbody>
</table><p>
<br><br><b><font color = blue size = 4>Em caso de duvidas, contatar equipe TI Cadastros nos ramais 8000</b></font><br><br>
</p><p>
<b><font color = red size = 4>Favor analisar e tomar as devidas providencias</b></font>
</p></div>
</body>
</html>
';prc_nome_procedure ('dbamv@dba.com.br','e-mail para ser enviado','Novo produto cadastrado -'||:new.cd_produto || ':'||:new.ds_produto,v_html,25);
END ;
/-- Abaixo a procedure de envio do e-mail que a trigger vai chamar
PROMPT CREATE OR REPLACE PROCEDURE prc_nome_procedure
CREATE OR REPLACE PROCEDURE prc_nome_procedure(fromm varchar2,too varchar2,sub varchar2,body varchar2,port number)
is
objConnection utl_smtp.connection;
vrData varchar2(32000);BEGIN
objConnection := UTL_smtp.open_connection('servidor_email',porta);
UTL_smtp.helo(objConnection, 'servidor_email');
UTL_smtp.mail(objConnection, fromm);
UTL_smtp.rcpt(objConnection, too);
UTL_smtp.open_data(objConnection);
/* ** Sending the header information */
UTL_smtp.write_data(objConnection, 'From: '||fromm || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'To: '||too || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Subject: ' || sub || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'MIME-Version: ' || '1.0' || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Content-Type: ' || 'text/html;');
UTL_smtp.write_data(objConnection, 'Content-Transfer-Encoding: ' || '"8Bit"' ||
UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'<span style="color: red; font-family: Courier New;">'||body||'</span>');
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');
UTL_smtp.close_data(objConnection);
UTL_smtp.quit(objConnection);EXCEPTION
WHEN UTL_smtp.transient_error OR UTL_smtp.permanent_error THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);WHEN OTHERS THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);
END prc_nome_procedure ;
/GRANT EXECUTE ON prc_nome_procedure TO dbaportal;
GRANT EXECUTE ON prc_nome_procedure TO dbaps;
GRANT EXECUTE ON prc_nome_procedure TO dbasgu;
GRANT EXECUTE ON prc_nome_procedure TO mv2000;
GRANT EXECUTE ON prc_nome_procedure TO mv2000_leitura;
GRANT EXECUTE ON prc_nome_procedure TO mvintegra;
-- ESTA TRIGGER DISPARA UM E-MAIL QUANDO UM NOVO PRODUTO É CRIADO PARA O EMAIL CADASTRADO
PROMPT CREATE OR REPLACE TRIGGER trg_NOME_TRIGGER
CREATE OR REPLACE TRIGGER trg_NOME_TRIGGER
AFTER INSERT
ON produto
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
v_html clob;
retorno varchar2(20000);
begin
v_html:= '<html>
<head>
<title>Novo produto cadastrado</title>
</head>
<body>
<div style="text-align: center;">
<font color = red size = 5><b>Favor analisar novo produto cadastrado</b></font><br><br></div>
<div style="text-align: center;">
<table border="1" cellpadding="1" cellspacing="1" style="width: 100%">
<tbody>
<tr>
<td><b><font size = 4>Codigo do produto</font></b></td>
<td><b><font size = 4>Descricao do produto</font></b></td>
</tr>
<tr>
<td><font size = 3>'||:new.cd_produto||'</font></td>
<td><font size = 3>'||:new.ds_produto||'</font></td>
</tr>
</tbody>
</table>
<p>
<br><br><b><font color = blue size = 4>Em caso de duvidas, contatar equipe TI Cadastros nos ramais 8000</b></font><br><br>
</p>
<p>
<b><font color = red size = 4>Favor analisar e tomar as devidas providencias</b></font>
</p>
</div>
</body>
</html>
';
prc_nome_procedure ('dbamv@dba.com.br','e-mail para ser enviado','Novo produto cadastrado -'||:new.cd_produto || ':'||:new.ds_produto,v_html,25);
END ;
/
-- Abaixo a procedure de envio do e-mail que a trigger vai chamar
PROMPT CREATE OR REPLACE PROCEDURE prc_nome_procedure
CREATE OR REPLACE PROCEDURE prc_nome_procedure
(fromm varchar2,too varchar2,sub varchar2,body varchar2,port number)
is
objConnection utl_smtp.connection;
vrData varchar2(32000);
BEGIN
objConnection := UTL_smtp.open_connection('servidor_email',porta);
UTL_smtp.helo(objConnection, 'servidor_email');
UTL_smtp.mail(objConnection, fromm);
UTL_smtp.rcpt(objConnection, too);
UTL_smtp.open_data(objConnection);
/* ** Sending the header information */
UTL_smtp.write_data(objConnection, 'From: '||fromm || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'To: '||too || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Subject: ' || sub || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'MIME-Version: ' || '1.0' || UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection, 'Content-Type: ' || 'text/html;');
UTL_smtp.write_data(objConnection, 'Content-Transfer-Encoding: ' || '"8Bit"' ||
UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF);
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'<span style="color: red; font-family: Courier New;">'||body||'</span>');
UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');UTL_smtp.write_data(objConnection,UTL_tcp.CRLF||'');
UTL_smtp.close_data(objConnection);
UTL_smtp.quit(objConnection);
EXCEPTION
WHEN UTL_smtp.transient_error OR UTL_smtp.permanent_error THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);
WHEN OTHERS THEN
UTL_smtp.quit(objConnection);
dbms_output.put_line(sqlerrm);
END prc_nome_procedure ;
/
GRANT EXECUTE ON prc_nome_procedure TO dbaportal;
GRANT EXECUTE ON prc_nome_procedure TO dbaps;
GRANT EXECUTE ON prc_nome_procedure TO dbasgu;
GRANT EXECUTE ON prc_nome_procedure TO mv2000;
GRANT EXECUTE ON prc_nome_procedure TO mv2000_leitura;
GRANT EXECUTE ON prc_nome_procedure TO mvintegra;
Citação de Daniel Freire em 06/07/2023, 16:37@andre-pegorin Boa tarde.
Essa trigerde envio de email, ela é a mesma da tela do SCMA onde ele usa para enviar com o comprovante de agendamento para o paciente?
@andre-pegorin Boa tarde.
Essa trigerde envio de email, ela é a mesma da tela do SCMA onde ele usa para enviar com o comprovante de agendamento para o paciente?
Citação de andre.pegorin em 06/07/2023, 17:05Não...
Não...