Erro ao enviar email autenticado

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Pablo
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 190
Registrado em: Sex, 27 Out 2006 11:12 am
Localização: 88350000
Pablo

Boa tarde mestres.

Foi feito migração no nosso servidor de emails. Agora o servidor pede autenticação. Bom, utilizo o oracle 11g.
eu envio email Utilizando o comando utl_smtp.
Então da a seguinte mensagem de erro:
ORA-29279: SMTP permanent error: 550 relay through this is server without authentication.
Bom, depois de uma incansável busca, achei o seguinte comando:
utl_smtp.command (xconexao, 'AUTH LOGIN');
utl_smtp.command (xconexao, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((DES_USUARIO_EMAIL)))));

utl_smtp.command (xconexao, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((DES_SENHA_EMAIL_SISTEMAS)))));

Adicionando esses comandos de autenticação, mostra a seguinte mensagem de erro: ORA-29279: SMTP permanent error: 503 AUTH command used when not advertised.

Bom, então mudei de AUTH LOGIN para STARTTLS, AUTH NTLM e AUTH PLAIN, mas nada funciona.

Procurei aqui no forum, mas, nada que me ajudou muito. Alguém tem alguma ideia do que posso fazer?
O servidor que hospeda os emails não é interno.

Grande abraço pra todos.
Pablo
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 190
Registrado em: Sex, 27 Out 2006 11:12 am
Localização: 88350000
Pablo

Bom dia mestres.
Depois de muuuiiitaaaa pesquisa...e receber uma informação (de um incompetente de adm de servidor de email...que sinceramente, para mim ele seria mais útil pastando na beira de rodovia)....consegui resolver o problema...no problema descrito acima eu estava tentando autenticar com o comando 'AUTH LOGIN'...mas, na verdade é somente o 'AUTH'....abaixo está o script criado...caso alguém tenha alguma dúvida, poste ai.

Selecionar tudo

declare

   xconexao                    UTL_SMTP.CONNECTION;
   
begin
   
   xconexao := UTL_SMTP.open_connection('endereço do smtp');
      
   --INICIANDO CONEXÃO COM O SERVIDOR
      
   UTL_SMTP.ehlo(xconexao, 'domínio da empresa');   -- Você deve usar EHLO ao invés de HELO

   --
      
   --O comando "AUTH" varia conforme o servidor de email. Quem fornece essa informação é o adm do servidor.
   --Esse comando abre a solicitação 334 (vinda do servidor de email) que solicita um usuário.
      
   UTL_SMTP.command(xconexao, 'AUTH', 'LOGIN');

   -- É enviada a resposta 334, informando o usuário
      
   UTL_SMTP.command(xconexao, UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(xdes_emitente))));   

   --Deve receber uma resposta 235, então você é autenticado
      
   UTL_SMTP.command(xconexao, UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(xdes_senha_email_remetente))));  
      
   --comandos para montar o restante do email....
   
end;
Grande abraço pra todos.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes