Springboot實(shí)現(xiàn)郵件發(fā)送功能
本文實(shí)例為大家分享了Springboot實(shí)現(xiàn)郵件發(fā)送具體代碼,供大家參考,具體內(nèi)容如下
需求:用戶(hù)注冊(cè)賬號(hào)綁定郵箱之后,下次登錄時(shí)忘記密碼,需要通過(guò)郵箱找回密碼
1.創(chuàng)建springboot項(xiàng)目
2.pom導(dǎo)入依賴(lài)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
3.application.properties配置文件
spring.mail.host=smtp.163.com spring.mail.username=sple_vip@163.com//發(fā)件人郵箱,需要開(kāi)啟smtp服務(wù) spring.mail.password=ming438434//授權(quán)密碼,非郵箱的登錄密碼 spring.mail.port=25 spring.mail.protocol=smtp spring.mail.default-encoding=UTF-8
發(fā)件人郵箱的設(shè)置:
郵箱客戶(hù)端授權(quán)碼也需要手動(dòng)開(kāi)啟,設(shè)置授權(quán)碼
4.用戶(hù)輸入自己的郵箱,點(diǎn)擊找回,前端頁(yè)面
html代碼:
<div class="regWrap"> <div class="regName"> <span>請(qǐng)輸入郵箱</span> <input id="mail" type="email" class="mail" placeholder="請(qǐng)輸入郵箱"> </div> <button id="registbtn" class="regBtn" type="button">找回</button> </div>
js代碼:
$(function () { $("#registbtn").click(function() { var user = { mail:$("#mail").val() } $.ajax({ type: "POST", url:"/mail.action", contentType: "application/json;", data: JSON.stringify(user), success: function (data) { if(data == "successful"){ alert("已發(fā)送至您的郵箱") location.href="/login.html" rel="external nofollow" ; } if (data=="failful") { alert("郵箱錯(cuò)誤") } }, error: function (data) { alert("網(wǎng)絡(luò)繁忙") } }); }); });
5.點(diǎn)擊找回,進(jìn)入controller層
@RequestMapping("/mail.action") public String mail(@RequestBody User user) { return mailService.sendMail(user); }
service層
@Service public class MailServiceImpl implements MailService{ @Autowired private JavaMailSender javaMailSender; @Autowired private UserMapper userMapper; @Override public String sendMail(User user) { User user2 = mailPwd(user); StringBuilder stringBuilder=new StringBuilder(); stringBuilder.append("<html><head><title></title></head><body>"); stringBuilder.append("親愛(ài)的用戶(hù)"+user2.getAccount()+",您的當(dāng)前密碼是:"+user2.getPassword()); stringBuilder.append("</br><a ); MimeMessage mimeMessage=javaMailSender.createMimeMessage(); //multipart模式 try { MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setTo(user.getMail());//收件人郵箱user.getMail() mimeMessageHelper.setFrom("sple_vip@163.com");//發(fā)件人郵箱 mimeMessage.setSubject("找回密碼"); //啟用html mimeMessageHelper.setText(stringBuilder.toString(),true); javaMailSender.send(mimeMessage); return Constent.SUCCESSFUL; } catch (MessagingException e) { e.printStackTrace(); return Constent.FAILFUL; } } /** * 通過(guò)郵箱到數(shù)據(jù)庫(kù)查詢(xún)用戶(hù)的信息 */ @Override public User mailPwd(User user) { return userMapper.mailPwd(user); } }
dao層
public interface UserMapper { /** * 通過(guò)郵箱查詢(xún)用戶(hù)信息 */ @Select("SELECT * FROM user WHERE mail = #{mail}") public User mailPwd(User user); }
發(fā)送成功效果
這是一個(gè)簡(jiǎn)單的通過(guò)郵箱找回密碼就完成了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中實(shí)現(xiàn)啟動(dòng)任務(wù)的實(shí)現(xiàn)步驟
這篇文章主要介紹了SpringBoot中實(shí)現(xiàn)啟動(dòng)任務(wù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java查詢(xún)Elasticsearch數(shù)據(jù)根據(jù)指定id檢索(in查詢(xún))、sql權(quán)限過(guò)濾、多字段匹配檢索及數(shù)據(jù)排序
在Java開(kāi)發(fā)中Elasticsearch(簡(jiǎn)稱(chēng)ES)是一個(gè)非常流行的搜索引擎,它提供了強(qiáng)大的全文搜索和分析功能,這篇文章主要給大家介紹了關(guān)于Java查詢(xún)Elasticsearch數(shù)據(jù)根據(jù)指定id檢索(in查詢(xún))、sql權(quán)限過(guò)濾、多字段匹配檢索及數(shù)據(jù)排序的相關(guān)資料,需要的朋友可以參考下2024-05-05Java的Struts框架中的if/else標(biāo)簽使用詳解
這篇文章主要介紹了Java的Struts框架中的if/else標(biāo)簽使用詳解,Struts是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12JavaWeb 使用Session實(shí)現(xiàn)一次性驗(yàn)證碼功能
這篇文章主要介紹了JavaWeb 使用Session實(shí)現(xiàn)一次性驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Java 讀取網(wǎng)絡(luò)圖片存儲(chǔ)到本地并生成縮略圖
用Java做開(kāi)發(fā)經(jīng)常需要處理圖片。本文就來(lái)看一下如何保存圖片到本地并生成縮略圖2021-05-05Spring Boot優(yōu)雅使用RocketMQ的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Spring Boot優(yōu)雅使用RocketMQ的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Spring-AOP自動(dòng)創(chuàng)建代理之BeanNameAutoProxyCreator實(shí)例
這篇文章主要介紹了Spring-AOP自動(dòng)創(chuàng)建代理之BeanNameAutoProxyCreator實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java項(xiàng)目中的絕對(duì)路徑和相對(duì)路徑用法說(shuō)明
這篇文章主要介紹了java項(xiàng)目中的絕對(duì)路徑和相對(duì)路徑用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08