1. 程式人生 > >asp.net mvc 註冊中的郵箱激活功能實現

asp.net mvc 註冊中的郵箱激活功能實現

名稱 work 點擊 rom urn 內容 string 電子郵件 amp

  • 基本流程圖

  • 註冊頁面就不再寫出,現在將發送郵件的代碼粘貼出來
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]
/* */", "xxxxxx"); //發送郵件 client.Send(mail); } catch {} return new EmptyResult(); }

說明:

  1. 填寫服務器地址相關的用戶名和密碼信息 client.Credentials = new System.Net.NetworkCredential("[email protected]", "xxxxxx");
    這個需要填寫發件方的郵箱名和密碼
  2. 此處發送的郵件內容不會顯示出來鏈接的地址信息,只會以超鏈接的方式存在,效果如圖所示:

3. 驗證碼是否有效分為兩種情況:1.驗證是否在規定時間內,激活鏈接;2.驗證碼和數據庫中保存的是否相同

  • 實現思路:
  1. 頁面需要三個頁面:1.註冊頁面;2.激活頁面;3.失敗頁面。
  2. 數據庫表中添加一個激活的狀態字段-1或1 (-1為未激活,1未激活),在添加一個驗證碼字段validateCode,最後在添加一個註冊時間字段registeredDate
  3. 程序中,註冊頁面添加註冊信息,隨機生成註冊驗證碼(GUID)添加到數據庫中,把用戶id和驗證碼作為參數發送到郵箱中
  4. 因為用的是asp.net mvc 所以不需要自己寫代碼獲取url中的參數,action 中的參數只要和url 中的對應就行了,action會幫我們自動的獲取url 中的參數信息
  5. 通過action 中的參數信息查詢數據庫,判斷是否可以激活註冊信息

asp.net mvc 註冊中的郵箱激活功能實現