2011-08-04 166 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