Code to validate an e-mail address in vb6

Code to validate an e-mail address in vb6
global819Asked:
Who is Participating?
 
Ryan ChongConnect With a Mentor Commented:
Hi, here is a sample:

Dim IsValid As Boolean
Dim InvalidReason As String
   
IsValid = IsEMailAddress("karl@karlmoore.com", InvalidReason)

MsgBox "Is the e-mail address valid? - " & IsValid

MsgBox "If invalid, the reason given is: " & InvalidReason

_______________________________________________________

Public Function IsEMailAddress(ByVal sEmail As String, _
    Optional ByRef sReason As String) As Boolean
       
     Dim sPreffix As String
     Dim sSuffix As String
     Dim sMiddle As String
     Dim nCharacter As Integer
     Dim sBuffer As String

     sEmail = Trim(sEmail)

     If Len(sEmail) < 8 Then
          IsEMailAddress = False
          sReason = "Too short"
          Exit Function
     End If


     If InStr(sEmail, "@") = 0 Then
          IsEMailAddress = False
          sReason = "Missing the @"
          Exit Function
     End If


     If InStr(InStr(sEmail, "@") + 1, sEmail, "@") <> 0 Then
          IsEMailAddress = False
          sReason = "Too many @"
          Exit Function
     End If


     If InStr(sEmail, ".") = 0 Then
          IsEMailAddress = False
          sReason = "Missing the period"
          Exit Function
     End If

     If InStr(sEmail, "@") = 1 Or InStr(sEmail, "@") = Len(sEmail) Or _
          InStr(sEmail, ".") = 1 Or InStr(sEmail, ".") = Len(sEmail) Then
          IsEMailAddress = False
          sReason = "Invalid format"
     Exit Function

End If


For nCharacter = 1 To Len(sEmail)
     sBuffer = Mid$(sEmail, nCharacter, 1)
     If Not (LCase(sBuffer) Like "[a-z]" Or sBuffer = "@" Or _
     sBuffer = "." Or sBuffer = "-" Or sBuffer = "_" Or _
     IsNumeric(sBuffer)) Then: IsEMailAddress = _
     False: sReason = "Invalid character": Exit Function
Next nCharacter

nCharacter = 0

On Error Resume Next

sBuffer = Right(sEmail, 4)
If InStr(sBuffer, ".") = 0 Then GoTo TooLong:
If Left(sBuffer, 1) = "." Then sBuffer = Right(sBuffer, 3)
If Left(Right(sBuffer, 3), 1) = "." Then sBuffer = Right(sBuffer, 2)
If Left(Right(sBuffer, 2), 1) = "." Then sBuffer = Right(sBuffer, 1)


If Len(sBuffer) < 2 Then
     IsEMailAddress = False
     sReason = "Suffix too short"
     Exit Function
End If

TooLong:

If Len(sBuffer) > 3 Then
     IsEMailAddress = False
     sReason = "Suffix too long"
     Exit Function
End If

sReason = Empty
IsEMailAddress = True

End Function
0
 
rkot2000Commented:
you can use instr to search for @, . , com or net
0
 
hesCommented:
have a look at this example

http://cuinl.tripod.com/Tips/string1.htm
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
vim_asteyaCommented:
u can try this too


Dim v1, v2
If Len(email.Text) = 0 Then
    DoEvents
ElseIf Len(email.Text) > 0 Then
    v2 = (InStr(1, email.Text, "@", vbTextCompare))
    v1 = (InStr(1, email.Text, ".", vbTextCompare))

        If ((v2 > 0) And (v1 > 0)) Then
            DoEvents
        Else
            MsgBox "Invalid ID", , "Email"
            email.SetFocus
            email.Text = ""
        End If
End If

I use this code in my projects
0
 
DanRollinsCommented:
Hi global819,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will suggest to:

    Accept ryancys's comment(s) as an answer.

global819, if you think your question was not answered at all or if you need help, you can simply post a new comment here.  Community Support moderators will follow up.

EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
0
 
global819Author Commented:
Thank you Randys
0
 
MindphaserCommented:
The answer is complete. I think that was a 'default' B, so I will change the grade to 'A'.

** Mindphaser - Community Support Moderator **
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.