1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Validar email

Discussão em 'Progress 4GL' iniciado por lm1979, Maio 6, 2016.

  1. lm1979

    lm1979 Membro Participativo

    Boa tarde pessoal,
    Alguém conhece alguma forma de validar os emails cadastrados?
    Eu preciso verificar o campo e-mail da tabela emitente, analisar um a um no olho demora muito.

    Att,
    Leandro.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    que tipo de validação vc quer fazer ?
  3. brunoowr

    brunoowr Membro Participativo

    Também preciso fazer o mesmo. Preciso validar se os e-mails são existentes, pois temos muitos e-mails no cadastro que não existem mais e o e-mail acaba não sendo enviado para nenhum destinatário.
  4. lm1979

    lm1979 Membro Participativo

    Boa tarde,
    Muitas vezes no campo email o pessoal digita número de telefone ou nome para contato, então eu preciso saber se é um email válido ou se é um texto qualquer.
    Att,
    Leandro.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    if index('@', campo) = 0 then ERRO.
  6. ds201

    ds201 Membro Participativo

    Desta forma é possível validar o formato.
    Mas não é possível afirmar que o e-mail é válido.

    Achei um programa (aqui na empresa) que faz a validação de e-mail.
    Para ele funcionar é preciso que o Outlook esteja carregado.
    Ele tem umas esquisitices... mas funciona.

    Código:
    /*--- Procedure - Analisa e-mails ------------------------------------------------------------------------*/
    procedure proc_analisa_e-mails:
       assign v-num-reg-lidos = 0.
    
       for each tt-dados:
          process events.
          assign v-num-reg-lidos = v-num-reg-lidos + 1.
          run pi-acompanhar in h-acomp(input "Fase 4/5  " + string(v-num-reg-lidos)).
         
          /*--- Pausa para nÆo sobrecarregar o Outlook ---*/
          assign i-aux = i-aux + 1.
          if i-aux >= 123 then do:
             pause 13 no-message.
             assign i-aux = 0.
          end.
          /*--- fim - Pausa para nÆo sobrecarregar o Outlook ---*/
    
          /*=== Validar e-mail no Outlook ===*/
          def var ch-outlook             as com-handle no-undo.
          def var ch-outlook-msg         as com-handle no-undo.
          def var ch-outlook-recipients  as com-handle no-undo.
          def var l-aux                  as log        no-undo.
         
          /*--- Start do Outlook ---*/
          create "Outlook.Application" ch-outlook no-error.
          if not valid-handle(ch-outlook) then do:
             run utp/ut-msgs.p (input "msg", input 31810, input "").
             return "NOK".
          end.
         
          assign ch-outlook-msg             = ch-outlook:CreateItem(0).
          assign ch-outlook-recipients      = ch-outlook-msg:recipients:Add(tt-dados.email).
          assign ch-outlook-recipients:Type = 1.
          assign l-aux                      = ch-outlook-recipients:resolve no-error.
         
          if l-aux then do:
             assign tt-dados.erro     = no. /*--- Ok ---*/
             release tt-dados.
          end.
          else do:
             assign tt-dados.erro     = yes
                    tt-dados.msg-erro = "E-mail nÆo cadastrado no Outlook".
             release tt-dados.
          end.
    
          release object ch-outlook-recipients no-error.
          release object ch-outlook-msg        no-error.
          release object ch-outlook            no-error.
          /*=== fim - Validar e-mail no Outlook ===*/
       end.
    end procedure.
    

Compartilhe esta Página