Pular para o conteúdo
  • Este tópico contém 8 respostas, 2 vozes e foi atualizado pela última vez 5 anos, 11 meses atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #109268
    Avatar de MottaMotta
    Participante

      Pelo pacote (Package) do Oracle UTL_SMTP tenho como validar um domínio ou até um email sem precisar enviar um email ?

      Seria algo como um “ping”.

      #109269
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Blz ? Então, a package SMTP só implementa as rotinas de conexão via SMTP e as diretamente relacionadas com manipulação de emails, só e apenas ….

        NO SEU caso, abrindo um pouco mais a sua questão, o FATO é que há alguns métodos de validar um email, mas TODOS ELES envolvem enviar pacotes pro servidor de emails, e hoje em dia (por motivos de SEGURANÇA), a Esmagadora Maioria dos servidores de email de Empresas NÂO responde a ping NEM a comandos externos, só admite receber pacotes de fontes externas após login válido…. Leia https://lifehacker.com/5697360/how-to-verify-if-an-email-address-is-real-or-fake , https://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/ , https://www.labnol.org/software/verify-email-address/18220/ e https://www.quora.com/Is-there-a-way-to-check-if-an-e-mail-address-is-valid-without-e-mailing-it para algumas idéias, mas NECESSARIAMENTE NENHUMA das técnicas mostradas é 100% garantida, Exatamente pelo ‘fechamento’, pelas RESTRIÇÕES que hoje em dia se encontra comumente em servidores de email corporativos…
        Já se o email que vc quer validar é público/externo (tipo gmail ou yahoo, digamos) aí sim : esse tipo de email por natureza não pode implementar grandes restrições, aí Pode SERque vc consiga …

        []s

        Chiappa

        #109270
        Avatar de MottaMotta
        Participante

          Pesquisando mais achei o método
          utl_smtp.vrfy

          Mas não funcionou

          --create or replace FUNCTION "VALIDA_EMAIL" (ds_email_destino_p varchar2) RETURN CHAR is
          DECLARE
          ds_email_destino_p varchar2(70) := '';
          l_reply utl_smtp.reply;
          vn_code number;
          vs_text varchar2(255);
          ds_smtp_w varchar2(20) := '......';
          /* Abre conex?o SMTP e HTTP */
          CONEXAO UTL_SMTP.CONNECTION;
          vs_origem char(50) := '....';
          BEGIN
          /* Abre conex?o com um Servidor SMTP(Simple Mail Transfer Protocol), porta padr?o SMTP e 25 */
          CONEXAO := utl_smtp.open_connection (ds_smtp_w,25); --25
          UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereco do servidor de SMTP */
          l_reply := utl_smtp.vrfy(CONEXAO,ds_email_destino_p);
          vn_code := l_reply.code;
          vs_text := l_reply.text;
          dbms_output.put_line(vn_code);
          dbms_output.put_line(vs_text);
          UTL_SMTP.QUIT (CONEXAO);
          Exception
          when OTHERS then
          utl_smtp.quit (conexao);
          RAISE_APPLICATION_ERROR(-20011,'Erro: ' || SQLERRM);
          END ENVIA_EMAIL;

          #109271
          Avatar de MottaMotta
          Participante

            Meio que desistindo da ideia.

            valeu

            #109272
            Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
            Moderador

              Vc ** leu ** os links que indiquei ? Neles se detalham as OUTRAS opções mas ao resumo a coisa é : SE ISSO É PERMITIDO, vc pode pingar o servidor de email, vc pode fazer nslookup, vc pode pedir tracert e similares, o que comprova que O DOMÍNIO/SERVIDOR EM SI existe mas o email não tem jeito, vc TEM que fazer algum tipo de CONEXÃO e como Eu disse antes, QUASE NINGUÉM PERMITE conexão anônima, sem informar usuário e senha, só fazendo acesso TELNET ou similar… OK ????
              Infelizmente, houve e há MUITO abuso e envio de SPAM, então hoje é que uma REGRA que ninguém permita acesso via telnet ou similar SEM SE IDENTIFICAR apropriadamente, e (óbvio) o usuário do email informou só o usuário (o email) e não a senha dele…. INVIÁVEL, portanto…

              Assim sendo, REFORÇO que sua resposta é : vc PROVAVELMENTE PODE validar o domínio/servidor de email (SE ele responder a ping, nslookup, tracert, finder ou quetais : POR MOTIVO SE SEGURANÇA ás vezes até isso é bloqueado em algumas empresas) MAS o endereço de email em si (que normalmente é o usuário do serviço de email) aí NÂO, já que isso Exige conexão anônima (como eu disse, vc Não Sabe a senha do usuário) E por motivos de segurança e pra evitar abusos como SPAM conexão anônima normalmente é PROIBIDA…

              []s

              Chiappa

              #109273
              Avatar de MottaMotta
              Participante

                De fato já estava com a function quando recebi sua resposta.

                Vou ler a documentação mas creio que não vá implementar.

                Aqui onde trabalho validar um email é importante mas não é crítico , não sei se vale a pena implementar isto aqui.

                De qualquer forma valeu.

                #109275
                Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
                Moderador

                  Depende muito da tua necessidade : se o email vai ser usado pra servir como “chave”, como um dos IDENTIFICADORES do usuário da aplicação (por exemplo), OU então se esse email vai ser usado para que o usuário receba LOGs e RELATÓRIOS importantes do Aplicativo, vale MUITO a pena validar E a maneira mais segura de validar é teu aplicativo de cadastro mandar um email pra conta de email informada e nesse email há um LINK que o usuário tem que clicar – esse cadastro fica Pendente enquanto o usuário não clickar nesse link … MUITAS empresas fazem isso hoje em dia : na Oracle mesmo, se vc criar um usuário em http://www.oracle.com vc vai receber uma msg de email no email informado contendo uma url, só quando vc entrar nessa URL é que o sistema lá deles Ativa o cadastro…
                  Já se esse email é só uma informação cadastral a mais, um meio de contato alternativo mas não é uma chave lógica, vc possa implementar uma validação mais simples : fazer um ping/nslookup no domínio informado após o @ , tentar a conexão anônima sem informar usuário/senha (como dito, na esmagadora maioria dos casos isso não deve funcionar mas enfim)… Ou ainda, a validação mais simplória de todas é só ver se a conta de email informada segue a sintaxe normalmente exigida de uma conta de email, ie : não começa por número, tem pelo menos 3 caracteres ou algo assim antes do @, depois do @ vem ums string e termina com .com ou .com.br, coisas assim…

                  []s

                  Chiappa

                  #109276
                  Avatar de MottaMotta
                  Participante

                    Não , aqui o problema mesmo é comunicação , envio de emails corporativos.

                    É uma cadastro antigo é tem coisas do tipo gmail.com.br , yahho.com.br etc , muitos casos para um valid.

                    Peguei casos de naotem@email … pois o valid se resumia a um @ ao menos … usuário tem parte com o Cão… 🙂

                    Queria algo simplesdo tipo um “ping”, mas já vi que o problema é maior.

                    Vou tentar outra abordagem mais simples.

                    Valeu.

                    #109279
                    Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
                    Moderador

                      Blz…

                    Visualizando 9 posts - 1 até 9 (de 9 do total)
                    • Você deve fazer login para responder a este tópico.
                    plugins premium WordPress