Conteúdo voltado para banco de dados Oracle e SQL Server

Erro ao enviar e-mail no Oracle 11g – ORA-24247: acesso à rede negado pela ACL (access control list)

No Oracle 11g ao tentar enviar um e-mail pelo SGBD, o seguinte erro é retornado:

ORA-24247: acesso à rede negado pela ACL (access control list)
ORA-06512: em “SYS.UTL_TCP”
ORA-06512: em “SYS.UTL_TCP”

Isso ocorre devido ao fato da Oracle ter implementado melhorias de segurança no Oracle 11g em vários objetos, e dentre eles estão as procedures: UTL_MAIL e UTL_SMTP. Essas procedures estão diretamente ligadas ao envio de email. Para resolver o erro, basta criar os seguintes objetos:

Execute esse script, informando os dados

begin
dbms_network_acl_admin.create_acl (
acl => ‘grant_acl_envio_email.xml’,
description => ‘Envio de e-mail pelo Oracle’,
principal => ‘LEONARDO’, –Colocar o nome do usuário que fará o envio do e-mail ou uma role em maiúsculo
is_grant => TRUE,
privilege => ‘connect’
);
commit;
end;

E depois:

begin
dbms_network_acl_admin.assign_acl(
acl => ‘grant_acl_envio_email.xml’,
host => ‘NOME_DO_SERVIDOR_SMTP’ –Nome do servidor SMTP
);
commit;
end;

 

Feito isso o envio de e-mail é realizado com sucesso. Vale lembrar que isso é apenas para corrigir o erro do envio de e-mail, para configurar o Oracle para enviar e-mails é outro procedimento que será discutido em outro post.

 

Até mais.

Leonardo Pedroso

Leonardo Pedroso, é administrador de banco de dados, possui amplo conhecimento em Oracle 11g e 12c, com atuação em empresas de telecomunicações, bancos, seguradoras e órgãos do governo brasileiro prestando serviços especializados em banco de dados. Atua ativamente em comunidades técnicas através de fóruns, eventos, blog e palestras.

1 Comment

  1. Parabéns pelo post!
    Me ajudou bastante.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.