Springboot實(shí)現(xiàn)郵件發(fā)送功能
本文實(shí)例為大家分享了Springboot實(shí)現(xiàn)郵件發(fā)送具體代碼,供大家參考,具體內(nèi)容如下
需求:用戶注冊(cè)賬號(hào)綁定郵箱之后,下次登錄時(shí)忘記密碼,需要通過(guò)郵箱找回密碼
1.創(chuàng)建springboot項(xiàng)目
2.pom導(dǎo)入依賴
<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è)置:

郵箱客戶端授權(quán)碼也需要手動(dòng)開(kāi)啟,設(shè)置授權(quán)碼

4.用戶輸入自己的郵箱,點(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)的用戶"+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ù)查詢用戶的信息
*/
@Override
public User mailPwd(User user) {
return userMapper.mailPwd(user);
}
}
dao層
public interface UserMapper {
/**
* 通過(guò)郵箱查詢用戶信息
*/
@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項(xiàng)目中實(shí)現(xiàn)讀寫分離的流程步驟
SpringBoot作為一種快速開(kāi)發(fā)框架,廣泛應(yīng)用于Java項(xiàng)目中,在一些大型應(yīng)用中,數(shù)據(jù)庫(kù)的讀寫分離是提升性能和擴(kuò)展性的一種重要手段,本文將介紹如何在SpringBoot項(xiàng)目中優(yōu)雅地實(shí)現(xiàn)讀寫分離,并通過(guò)適當(dāng)?shù)拇a插入,詳細(xì)展開(kāi)實(shí)現(xiàn)步驟,同時(shí)進(jìn)行拓展和分析2023-11-11
SpringBoot實(shí)現(xiàn)聯(lián)表查詢的代碼詳解
這篇文章主要介紹了SpringBoot中如何實(shí)現(xiàn)聯(lián)表查詢,文中通過(guò)代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05
java中\(zhòng)t,\n,\r,\b,\f 的作用及說(shuō)明
這篇文章主要介紹了java中\(zhòng)t,\n,\r,\b,\f 的作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
java加密MD5實(shí)現(xiàn)及密碼驗(yàn)證代碼實(shí)例
這篇文章主要介紹了java加密MD5實(shí)現(xiàn)及密碼驗(yàn)證代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
springboot 緩存@EnableCaching實(shí)例
這篇文章主要介紹了springboot 緩存@EnableCaching實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring Boot 驗(yàn)證碼框架 CAPTCHA詳解
這篇文章主要介紹了Spring Boot 驗(yàn)證碼框架 CAPTCHA詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

