很多網(wǎng)站都支持郵箱注冊,以下將實(shí)現(xiàn)郵箱注冊
功能:支持登錄,注冊,激活,重置密碼。
效果如圖
注冊成功
未激活登錄
激活郵件 去激活
激活后,登錄成功
重置密碼
重置密碼郵件
輸入之前的密碼登陸
輸入重置密碼登陸
錯誤郵箱提示
代碼
引入架包,修改pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>RELEASE</version> </dependency> <!– 模板引擎 –> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!– https://mvnrepository.com/artifact/com.google.code.gson/gson –> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version>
新建實(shí)體類User.java與RequestData.java
略了(看代碼)
導(dǎo)入靜態(tài)資源
css/js/….
編寫js
$(“#js-btn”).click(function() { var data = {} ; var name = $(“#js-btn”).attr(\\\’class\\\’) ; var url = “” ; if(name.indexOf(“rtn”)>0) { data.userEmail = $(“#js-field__email”).val() ; data.userPass = $(“#js-field__pass”).val() ; url = “/user/login” ; } else if(name.indexOf(“new”)>0) { data.userEmail = $(“#js-field__email”).val() ; data.userPass = $(“#js-field__pass”).val() ; data.userRepass = $(“#js-field__r-pass”).val() ; url = “/user/register” ; } else if(name.indexOf(“rst”)>0) { data.userEmail = $(“#js-field__email”).val() ; url = “/user/forget” ; } submit(data, url) ; }); function submit(data,url) { $.ajax({ cache: !1, type: “POST”, url: url, data: data, async: !0, beforeSend: function () { $(“#js-btn”).html(“提交中…”), $(“#js-btn”).attr(“disabled”, “disabled”) }, success: function (data) { var result = jQuery.parseJSON(data); layer.alert(result.message); }, complete: function () { $(“#js-btn”).html(“success”), $(“#js-btn”).removeAttr(“disabled”) } }) }
編寫controler
/** * Created by yando on 2017/11/22. */ @RestController @RequestMapping(value = “user”) public class UserController { @Autowired private JavaMailSender javaMailSender; @Autowired private TemplateEngine templateEngine; @Value(“${spring.mail.username}”) private String sender; private RequestData requestData = new RequestData() ; public static Map<String, User> map = new HashMap<String, User>(); @RequestMapping(value = “login”, method = RequestMethod.POST) public String login(User user) { for(User u : map.values()) { if(u!=null && u.getUserPass().equals(user.getUserPass()) && u.getUserEmail().equals(user.getUserEmail())) { if(u.getState()==0) { requestData.setCode(“9999”); requestData.setState(“500”); requestData.setMessage(“請前往” user.getUserEmail() “郵箱激活”); return new Gson().toJson(requestData); } requestData.setMessage(“登錄成功”); return new Gson().toJson(requestData); } } requestData.setCode(“9999”); requestData.setState(“500”); requestData.setMessage(“郵箱或者密碼錯誤”); return new Gson().toJson(requestData); } @RequestMapping(value = “register”, method = RequestMethod.POST) public String register(User user) { map.put(user.getUserId(), user); // 發(fā)送注冊郵件 sendTemplateMail(user.getUserEmail(), user.getUserId()); requestData.setMessage(“注冊成功, 快去激活”); return new Gson().toJson(requestData); } @RequestMapping(value = “forget”, method = RequestMethod.POST) public String forget(User user) { for(User u : map.values()) { if(u!=null || u.getUserEmail()== user.getUserEmail()) { u.setUserPass(“6666”); map.remove(u.getUserId()); map.put(u.getUserId(), u); requestData.setMessage(“密碼已經(jīng)重置,快去查看你的郵箱”); sendSimpleEmail(u.getUserEmail(), “您好,您密碼已重置,初始密碼:6666,為了你的安全請盡快修改密碼。”); return new Gson().toJson(requestData); } } requestData.setCode(“9999”); requestData.setState(“500”); requestData.setMessage(“無效郵箱”); return new Gson().toJson(requestData); } @RequestMapping(value = “activation/{userId}”, method = RequestMethod.GET) public void activation(@PathVariable String userId, HttpServletResponse response) throws IOException { User user = map.get(userId); if(user!=null) { user.setState(1); map.remove(user.getUserId()); map.put(user.getUserId(), user); } response.sendRedirect(“../../login.html”); } public void sendSimpleEmail(String recipient,String text) { SimpleMailMessage message = new SimpleMailMessage(); // 發(fā)送者 message.setFrom(sender); // 接收者 message.setTo(recipient); //郵件主題 message.setSubject(“Java資源分享網(wǎng)密碼重置郵件”); // 郵件內(nèi)容 message.setText(text); javaMailSender.send(message); } public void sendTemplateMail(String recipient,String userId) { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(sender); helper.setTo(recipient); helper.setSubject(“Java資源分享網(wǎng)驗(yàn)證郵件”); Context context = new Context(); context.setVariable(“id”, userId); String emailContent = templateEngine.process(“emailTemplate”, context); helper.setText(emailContent, true); } catch (MessagingException e) { throw new RuntimeException(“Messaging Exception !”, e); } javaMailSender.send(message); } }
結(jié)束了
執(zhí)行RunApplication.java,看效果吧。
請測試郵件用自己的 不要給博主造成不必要的影響 謝謝
源碼下載
SpringBoot進(jìn)階郵件服務(wù)(實(shí)戰(zhàn)模擬郵箱注冊含源碼)
如果,你對上面的內(nèi)容還有疑問,推薦選擇西部數(shù)碼企業(yè)云郵箱!有專人協(xié)助您解答郵箱疑問。
西部數(shù)碼21年老牌服務(wù)商,企業(yè)郵箱功能豐富,支持層級子文件夾,郵件歸檔,郵件撤回,企業(yè)網(wǎng)盤,日程微信通知、多彩便簽等幾十項(xiàng)特色功能,使用管理便捷。按需自由定制,購買靈活,PCIe加速、極速收發(fā)!而且支持小程序收發(fā)郵件,隨時隨地移動辦公。價格實(shí)惠,還可以免費(fèi)試用!
高性價比企業(yè)郵箱開通鏈接:http://bingfeng168.cn/services/mail/