2011-08-04 171 views
1

我试图验证电子邮件,但我的代码是不是让几个方案..电子邮件验证服务器端

代码

pvm = "[email protected]" does not work 
pvm = "[email protected]" - works 

If Len(pvm) < 5 OR NOT Instr(1, pvm, " ") = 0 OR InStr(1, pvm, "@", 1) < 2 OR InStrRev(pvm, ".") < InStr(1, pvm, "@", 1) Then 
    blnEmailOKREG = False 
     Else 
    blnEmailOKREG = True 
End If 

回答

2

这是一个相当不错的valiation电子邮件地址。请注意,虽然很难获得完全“全知”的验证。

' Function IsValidEmail 
' Method checks if a string value is a valid email adress 
' @Param val: <string> String containing email adress. 
' @RETURN: True/False 
Public function IsValidEmail(ByRef val) 
    IsValidEmail = RegExTest(val,"^[_a-zA-Z0-9-""'\/]+(\.[_a-zA-Z0-9-""'\/]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$") 
end function 

_

Public function RegexTest(str, pattern) 
    dim m_objRegex 

    set m_objRegex = New RegExp 
    m_objRegex.Pattern = pattern 
    m_objRegex.Global = True 
    RegExTest = m_objRegex.Test(str) 

    set m_objRegex = nothing 
End function 
+0

看起来它不允许用户部分'+'字符(这是常见的),并需要更新,每次有人来了一个新的顶级域名是更多的则3个字符长。良好的电子邮件地址验证*很难,但目的是假传递,而不是拒绝真实的电子邮件地址。 – Quentin

+1

@Quentin。是的,你的正确。我已经做了一些研究,并且使用IPv6验证电子邮件地址,转义字符,域名别名等会导致我整个地区停电。所以我放弃了这一点,只选择了最常见的验证方式,再加上电子邮件验证(发送电子邮件并检查响应)。由于我们的Web应用程序中的用户数量有限,因此我们可以手动处理任何验证错误。 – David

+0

谢谢,我完全删除它,因为这是一个讨厌的地址。 – webb