Notifications
Clear all

Checar se endereço de e-mail existe??

11 Posts
5 Usuários
0 Reactions
2,409 Visualizações
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Pessoal, desculpe a minha ignorância mas..

Estou trabalhando num relatório de análise de integridade dos cadastros realizados na empresa onde trabalho.
São muitos cadastros.

Minha dúvida está ligada aos campos de e-mail.
Será que existe algum código VBA que Verifica de forma online se o e-mail de fato existe?

Desde já agradeço a colaboração.. Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 15/12/2017 12:25 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Boa tarde!

Veja se esse código te ajuda.

Sub email()
    Dim txtEmail As String
    'Obtém o endereço de e-mail
    txtEmail = InputBox("Digite o endereço", "Endereço de e-mail")
   
    Dim Situacao As String
    'Identifica a situação dele
    If IsEmailValid(txtEmail) Then
        Situacao = "Sintaxe válida de e-mail!"
    Else
        Situacao = "Sintaxe inválida de e-mail!"
    End If
    ' Mostra o resultado
    MsgBox Situacao
End Sub


Function IsEmailValid(strEmail)
    Dim strArray As Variant
    Dim strItem As Variant
    Dim i As Long, c As String, blnIsItValid As Boolean
    blnIsItValid = True
    
    i = Len(strEmail) - Len(Application.Substitute(strEmail, "@", ""))
    If i <> 1 Then IsEmailValid = False: Exit Function
    ReDim strArray(1 To 2)
    strArray(1) = Left(strEmail, InStr(1, strEmail, "@", 1) - 1)
    strArray(2) = Application.Substitute(Right(strEmail, Len(strEmail) - Len(strArray(1))), "@", "")
    For Each strItem In strArray
        If Len(strItem) <= 0 Then
            blnIsItValid = False
            IsEmailValid = blnIsItValid
            Exit Function
        End If
        For i = 1 To Len(strItem)
            c = LCase(Mid(strItem, i, 1))
            If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then
                blnIsItValid = False
                IsEmailValid = blnIsItValid
                Exit Function
            End If
        Next i
        If Left(strItem, 1) = "." Or Right(strItem, 1) = "." Then
            blnIsItValid = False
            IsEmailValid = blnIsItValid
            Exit Function
        End If
    Next strItem
    If InStr(strArray(2), ".") <= 0 Then
        blnIsItValid = False
        IsEmailValid = blnIsItValid
        Exit Function
    End If
    i = Len(strArray(2)) - InStrRev(strArray(2), ".")
    If i <> 2 And i <> 3 Then
        blnIsItValid = False
        IsEmailValid = blnIsItValid
        Exit Function
    End If
    If InStr(strEmail, "..") > 0 Then
        blnIsItValid = False
        IsEmailValid = blnIsItValid
        Exit Function
    End If
    IsEmailValid = blnIsItValid
End Function

Fonte: http://carlosfprocha.com/blogs/paleo/ar ... o-vba.aspx

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/12/2017 12:33 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Caro wagner esse código me já me ajuda bastante, mas vou ter que personalizar pois alguns vendedores cadastram clientes da seguinte forma:

[email protected]

[email protected]

[email protected]

[email protected]

e coisas do tipo. Nesses casos o validador não aponta como erro.

Não dá pra controlar manualmente pois são mais de 1500 vendedores de mais de 4000 cadastros mensais :|

Mesmo assim obrigado pela ajuda pois já me deu uma luz para iniciar.. Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 15/12/2017 1:07 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

xlarruda,

Ok.

Veja esta.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/12/2017 1:54 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Colega wagner, desculpe a minha ignorância no assunto mas,

essa lista é tipo uma lista de exclusão? em que situações ela retornaria True?

Obs. para todos os e-mails que eu insiro ela só me retorna False.. Obrigado desde já!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 15/12/2017 2:26 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Vixe cara!

Nem testei com e-mails válidos! Aliás, esse código não é meu. Peguei na internet. Acho que você precisa dar uma boa estudada nele e, se for o caso, fazer as necessárias adaptações.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/12/2017 3:36 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Blz wagner, muito obrigado pela atenção! vou continuar tentando entendê-lo por aqui.

Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 15/12/2017 3:51 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Eu postei aqui no forum a uns dois anos atrás função que valida o e-mail: viewtopic.php?f=10&t=17252&hilit=+email
Esta função retorna o endereço do e-mail se for válido, caso contrario retorna vazio.

E tem esta outra função que válida o domino através do programa (for windows) NSLOOKUP na linha de comando: "nslookup -q=mx"
Desta forma o a validação fica quase completa.
Segue em anexo o exemplo com a aplicação das duas funções.

Click em se a resposta foi util!

 
Postado : 15/12/2017 8:23 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Boa-noite

Segue exemplo...espero que ajude !

Att

Francisco

 
Postado : 15/12/2017 8:45 pm
(@klarc28)
Posts: 971
Prominent Member
 

Se algum dos códigos resolveu seu problema, favor marcar como resolvido.
Caso contrário, diga o que falta.

 
Postado : 17/12/2017 11:15 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Amigo Basole, era exatamente isso o que eu procurava. Muito Obrigado!

E obrigado a todos pela contribuição... Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 18/12/2017 6:45 am