真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot進階郵件服務(實戰(zhàn)模擬郵箱注冊含源碼)

分析

目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、城口網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

工作中難免會用到郵箱服務,這里整理了五種郵件發(fā)送模式:發(fā)送文本郵件,發(fā)送HTML郵件,發(fā)送附件郵件,發(fā)送內(nèi)聯(lián)資源郵件,發(fā)送模板郵件。以供大家學習參考。最后實戰(zhàn)部分模擬郵箱注冊含源碼。

看一下圖(有圖有真相)

提前準備

pom.xml 配置

org.springframework.boot spring-boot-starter-mail

application.properties中添加郵箱配置

#郵箱服務器地址 spring.mail.protocol=smtp spring.mail.host=smtp.qq.com #郵箱服務器地址 spring.mail.username=************@qq.com #郵箱密碼 spring.mail.password=*********** spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true

注意:若是QQ spring.mail.password=QQ授權碼,需要開啟QQ授權碼

發(fā)送簡單文本郵件

@RunWith(SpringRunner.class) @SpringBootTest public class EmailTests { @Autowired private JavaMailSender javaMailSender; @Autowired private TemplateEngine templateEngine; //讀取配置文件中的參數(shù) @Value("${spring.mail.username}") private String sender; private static final String recipient = "*************@163.com" ; /** * 發(fā)送簡單文本郵件 */ @Test public void sendSimpleEmail() { SimpleMailMessage message = new SimpleMailMessage(); // 發(fā)送者 message.setFrom(sender); // 接收者 message.setTo(recipient); //郵件主題 message.setSubject("主題:文本郵件"); // 郵件內(nèi)容 message.setText("騷擾郵件勿回"); javaMailSender.send(message); } }

發(fā)送HTML郵件

新增發(fā)送HTML郵件測試方法

/** * 發(fā)送Html郵件 */ @Test public void sendHtmlEmail() { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(sender); helper.setTo(recipient); helper.setSubject("主題:HTML郵件"); StringBuffer sb = new StringBuffer(); sb.append("

大標題-h1

") .append("

紅色字

") .append("

右對齊

"); helper.setText(sb.toString(), true); } catch (MessagingException e) { throw new RuntimeException("Messaging Exception !", e); } javaMailSender.send(message); }

發(fā)送內(nèi)聯(lián)資源郵件

新增發(fā)送內(nèi)聯(lián)資源郵件測試方法

/** * 發(fā)送內(nèi)聯(lián)資源郵件 */ @Test public void sendInlineResourceMail() { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(sender); helper.setTo(recipient); helper.setSubject("主題:這是有圖片的郵件"); String imgId = "avatar"; String content="宮崎駿電影圖片:"; helper.setText(content, true) ; FileSystemResource res = new FileSystemResource(new File("src/main/resources/static/images/avatar.jpg")); helper.addInline(imgId, res); } catch (MessagingException e) { throw new RuntimeException("Messaging Exception !", e); } javaMailSender.send(message); }

發(fā)送模板郵件 重點

pom中導入thymeleaf的包

org.springframework.boot spring-boot-starter-thymeleaf

新增模板emailTemplate.html

Javazhan驗證郵件 您好,這是驗證郵件,請點擊下面的鏈接完成驗證, 激活賬號

新增發(fā)送模板郵件測試方法

/** * 發(fā)送模板郵件 */ @Test public void sendTemplateMail() { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(sender); helper.setTo(recipient); helper.setSubject("主題:模板郵件"); Context context = new Context(); context.setVariable("id", "wenter"); String emailContent = templateEngine.process("emailTemplate", context); helper.setText(emailContent, true); } catch (MessagingException e) { throw new RuntimeException("Messaging Exception !", e); } javaMailSender.send(message); }

注:很多時候郵采用異步的方式來發(fā)送郵件,加快主交易執(zhí)行速度,在實際項目中可以采用MQ發(fā)送郵件相關參數(shù),監(jiān)聽到消息隊列之后啟動發(fā)送郵件。

實戰(zhàn)部分模擬郵箱注冊
很多網(wǎng)站都支持郵箱注冊,以下將實現(xiàn)郵箱注冊
功能:支持登錄,注冊,激活,重置密碼。

效果如圖

注冊成功

未激活登錄

激活郵件 去激活

激活后,登錄成功

重置密碼

重置密碼郵件

輸入之前的密碼登陸

輸入重置密碼登陸

錯誤郵箱提示

代碼

引入架包,修改pom.xml

org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-devtools true org.springframework spring-context-support RELEASE org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-starter-web com.google.code.gson gson 2.8.2

新建實體類User.java與RequestData.java
略了(看代碼)

導入靜態(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 map = new HashMap(); @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)驗證郵件"); 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進階郵件服務(實戰(zhàn)模擬郵箱注冊含源碼)


分享名稱:SpringBoot進階郵件服務(實戰(zhàn)模擬郵箱注冊含源碼)
網(wǎng)址分享:http://weahome.cn/article/cgdjhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部