Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Amaro jr

Envio de e-mail pelo Oracle

Recommended Posts

Este envia com autenticação no SMTP

 

CREATE OR REPLACE PROCEDURE ENVIA_EMAIL	(ds_email_origem_w varchar2,
											ds_email_destino_p varchar2,
											ds_assunto	   varchar2,
											ds_mensagem_p varchar2) is


  ds_smtp_w varchar2(20) := 'ip';
  ds_user_id_w varchar2(50) := 'usuario';
  ds_senha_smtp_w varchar2(50) := 'senha';
  /* Abre conexão SMTP e HTTP */
  CONEXAO UTL_SMTP.CONNECTION;
BEGIN
   /* Abre conexão com um Servidor SMTP(Simple Mail Transfer Protocol), porta padrão SMTP é 25 */
  CONEXAO := utl_smtp.open_connection (ds_smtp_w,25);
  UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereço do servidor de SMTP */
  utl_smtp.command (CONEXAO, 'AUTH LOGIN');
  utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_user_id_w)))));
  utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_senha_smtp_w)))));
  UTL_SMTP.MAIL (CONEXAO, ('<' || ds_email_origem_w || '>')); /* E-mail de quem está mandando */
  UTL_SMTP.RCPT (CONEXAO, ('<' || ds_email_destino_p || '>')); /* Para quem vou mandar */
  UTL_SMTP.OPEN_DATA(CONEXAO);
  UTL_SMTP.WRITE_DATA(CONEXAO,'Subject'|| ': ' || ds_assunto || utl_tcp.CRLF);
  UTL_SMTP.WRITE_DATA(CONEXAO, utl_tcp.CRLF || ds_mensagem_p);
  UTL_SMTP.CLOSE_DATA(CONEXAO);
  UTL_SMTP.QUIT (CONEXAO);
Exception
  WHEN OTHERS THEN
	utl_smtp.quit (conexao);
	raise_application_error(-20011,'Não foi possível enviar o e-mail devido ao seguinte erro: ' || sqlerrm);
END ENVIA_EMAIL;
/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.