asp.net mvc 註冊中的郵箱激活功能實現
- 基本流程圖
- 註冊頁面就不再寫出,現在將發送郵件的代碼粘貼出來
public ActionResult SendEmial() { int customerID= 1; string validataCode = System.Guid.NewGuid().ToString(); try { System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress([email protected], "wode"); //填寫電子郵件地址,和顯示名稱 System.Net.Mail.MailAddress to = new System.Net.Mail.MailAddress([email protected], "nide"); //填寫郵件的收件人地址和名稱 //設置好發送地址,和接收地址,接收地址可以是多個 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.From = from; mail.To.Add(to); mail.Subject = "主題內容"; System.Text.StringBuilder strBody = new System.Text.StringBuilder(); strBody.Append("點擊下面鏈接激活賬號,48小時生效,否則重新註冊賬號,鏈接只能使用一次,請盡快激活!</br>"); strBody.Append("<a href=‘http://localhost:3210/Order/ActivePage?customerID=" + customerID+ "&validataCode =" + validataCode + "‘>點擊這裏</a></br>"); mail.Body = strBody.ToString(); mail.IsBodyHtml = true;//設置顯示htmls //設置好發送郵件服務地址 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); client.Host = "smtp.163.com"; //填寫服務器地址相關的用戶名和密碼信息 client.Credentials = new System.Net.NetworkCredential("[email protected]
說明:
- 填寫服務器地址相關的用戶名和密碼信息 client.Credentials = new System.Net.NetworkCredential("[email protected]", "xxxxxx");
這個需要填寫發件方的郵箱名和密碼 - 此處發送的郵件內容不會顯示出來鏈接的地址信息,只會以超鏈接的方式存在,效果如圖所示:
3. 驗證碼是否有效分為兩種情況:1.驗證是否在規定時間內,激活鏈接;2.驗證碼和數據庫中保存的是否相同
- 實現思路:
- 頁面需要三個頁面:1.註冊頁面;2.激活頁面;3.失敗頁面。
- 數據庫表中添加一個激活的狀態字段-1或1 (-1為未激活,1未激活),在添加一個驗證碼字段validateCode,最後在添加一個註冊時間字段registeredDate
- 程序中,註冊頁面添加註冊信息,隨機生成註冊驗證碼(GUID)添加到數據庫中,把用戶id和驗證碼作為參數發送到郵箱中
- 因為用的是asp.net mvc 所以不需要自己寫代碼獲取url中的參數,action 中的參數只要和url 中的對應就行了,action會幫我們自動的獲取url 中的參數信息
- 通過action 中的參數信息查詢數據庫,判斷是否可以激活註冊信息
asp.net mvc 註冊中的郵箱激活功能實現