java web啟用郵箱並找回密碼_java

來源:互聯網
上載者:User

幾乎每個網站或論壇之類的使用者註冊後都需要通過發送郵件到郵箱啟用使用者,如何啟用郵箱呐?
設計啟用步驟:
1、發送啟用操作鏈結接地址至使用者郵箱。
2、使用者至郵箱查收郵件。
3、使用者點選連結,跳轉至成功頁面(修改啟用狀態),啟用成功。

實現:

/**   * 發送郵件   *   * @param request   * @return   */  @RequestMapping(value = "/sendEmail.jhtml")  @ResponseBody  public String sendEmail(HttpServletRequest request) {   DynamicParams params = new DynamicParams(request);   StringBuilder builder = new StringBuilder();   StringBuffer url = new StringBuffer();   String type = params.getString("type");   Long uid = params.getLong("id");   User user = userManager.find(uid);   String subject = "";       // 判斷是否已啟用    if ("1".equals(String.valueOf(user.getEmailStatus()))) {     return errMsg();    }    String contextPath = request.getContextPath();    String rUrl = String.valueOf(request.getRequestURL());    url.append(rUrl.substring(0, rUrl.indexOf(contextPath)));    url.append(contextPath + "/account");    // 郵箱啟用    // url.append("/activateEmail.jhtml?email=" + user.getEmail() +    // "&id=" + uid + "&mode=activate");    url.append("/activateEmail.jhtml?id=" + uid + "&mode=activate");    // 本文    builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" </head><body>");    builder.append("請點擊下方連結啟用您的郵箱,完成啟用郵箱的操作!");    builder.append("<br/><br/>");    builder.append("<a href=\"" + url + "\">");    builder.append(url);    builder.append("</a>");    builder.append("</body></html>");    subject = "郵箱地址啟用 - xxxx";      MailSender.mailSimple(user.getEmail(), subject, builder.toString(),     false, null);   return successMsg();  }   /**   * 啟用郵箱   *   * @param request   * @return   */  @RequestMapping(value = "/activateEmail.jhtml")  public String activateEmail(HttpServletRequest request, Model model) {   DynamicParams params = new DynamicParams(request);   // 啟用之前查詢   User user = userManager.find(params.getLong("id"));    if ("1".equals(String.valueOf(user.getEmailStatus()))) {    // 已啟用    model.addAttribute("flag", false);   } else {    // 未啟用    userManager.activateEmail(params);    // 啟用之後查詢    user = userManager.find(params.getLong("id"));    request.getSession().setAttribute("sessionUser", user);    model.addAttribute("mode", params.getString("mode"));    model.addAttribute("flag", true);   }   return "site/modules/account/activateSuccess";  } 

MailSender.mailSimple(user.getEmail(), subject, builder.toString(),false, null);即為發送郵件工具類,如有不明白可參考我之前的文章(spring mail發送郵件)

忘記密碼(重設密碼)

背景:同樣是各大網站都會擁有的一個功能,通過發送驗證碼到使用者註冊的郵箱重設密碼

設計:1)輸入使用者名稱/手機號碼/郵箱,驗證碼。
             2)使用者選擇手機驗證或郵箱驗證,發送驗證碼到手機或郵箱。如果使用者郵箱未啟用,則不允許郵箱驗證。
             3)使用者輸入驗證碼成功,進入密碼重新設定頁面。
             4)重設密碼

流程:

實現:

/**  * 發送郵件  *  * @param request  * @return  */ @RequestMapping(value = "/sendEmail.jhtml") @ResponseBody public String sendEmail(HttpServletRequest request) {  DynamicParams params = new DynamicParams(request);  StringBuilder builder = new StringBuilder();  StringBuffer url = new StringBuffer();  String type = params.getString("type");  Long uid = params.getLong("id");  User user = userManager.find(uid);  String subject = "";     // type = forget 密碼重設   String verifyCode = VerifyCodeUtils.generateVerifyCode(4);   request.getSession().setAttribute("resetCertCode", verifyCode);   url.append("<font color='red'>" + verifyCode + "</font>");   // 本文   builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>");   builder.append("要使用新的密碼, 請將已下字元輸入驗證框中,完成重設密碼的操作!");   builder.append("<br/><br/>");   builder.append("<div>" + url + "</div>");   builder.append("</body></html>");   subject = "密碼重設 - xxxx";    MailSender.mailSimple(user.getEmail(), subject, builder.toString(),    false, null);  return successMsg(); } 

至此,啟用郵箱和忘記密碼功能已初步完成!希望對大家的學習有所協助,大家可以動手實現啟用郵箱並找回密碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.