2010-12-13 51 views
3

我只是想問一下電子郵件驗證的程序,最好的方法是什麼。到目前爲止,我有一個類,它存儲來自register.aspx表單的信息,然後我發送一封郵件給用戶,但是我應該向他發送什麼,我應該向用戶發送一個指導?關於電子郵件驗證 - 有什麼方法

此外,我的會員類存儲註冊數據存儲在會話中,這是一個好主意,因爲如果用戶會話超時,那麼會員類將什麼也不是,並且用戶將被提示再次註冊在會話超時網頁,這是一個好方法嗎?

但是,如果我發送用戶guid,然後用guid將用戶數據存儲到數據庫,然後檢查數據庫中相應的用戶guid的電子郵件guid,我該怎麼辦?

此外,我有一個正則表達式,檢查電子郵件是有效的,它不是很好,但我還沒有正確測試,有沒有免費的電子郵件驗證API呢?

我正在使用ASP.NET VB。

回答

3

這裏是我會做什麼:

1)詢問用戶的電子郵件

2)驗證使用正則表達式

3)如果有效的電子郵件,創建一個時間戳(DateTime.Now)追加用戶的ID和我需要的任何其他有用的信息。我們可以使用一些適當的分隔符。

4)對數據進行加密,並建立與加密令牌和電子郵件用戶

5)當用戶點擊,解密信息,檢查時間戳(或許有需要超時),並使用用戶ID的URL從數據庫中獲取數據。

+2

我不會使用電子郵件驗證正則表達式。太容易出錯,太多的RegEx作者不會考慮所有的電子郵件地址支持。更可靠的選擇是實際連接到用戶的電子郵件服務器並要求它驗證地址。 – 2010-12-13 23:04:29

+0

Remy Lebeau,我嘗試連接到像「hotmail」這樣的用戶電子郵件服務器,但我收到錯誤「連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或者因爲連接的主機已經建立連接失敗沒有迴應64.4.20.174:25「,似乎是通過防火牆或病毒軟件阻止它。有工作嗎? – redoc01 2010-12-14 13:37:28

+0

如何加密數據以便我可以在之後對其進行解碼? – kseen 2011-11-29 13:44:42

1

將數據保存到數據庫,包括GUID。將記錄的狀態設置爲「無效」。發送電子郵件,並附帶包含GUID的鏈接。單擊鏈接時,將註冊記錄設置爲「活動」。只有「有效」記錄才能登錄。

您無法使用正則表達式有效驗證電子郵件地址 - 請在此站點中搜索解釋原因。

0

在.Net中,您應該驗證這樣的電子郵件地址。有關詳細信息,請參見this question

MailAddress address = new MailAddress(input) 

如果電子郵件地址無效,則會引發異常。

2

這是除了已經接受的答案 - 我不會限制電子郵件驗證只檢查正則表達式語法。

有一個free email verification API我一直在使用,檢查多種因素,包括語法,拼寫錯誤,SMTP & MX-記錄(驗證了電子郵件地址實際存在的),如果它的免費或一次性電子郵件等。

他們提供免費一千每月請求 - mailboxlayer.com