SpringBoot項目簡單實現給郵箱發送驗證碼


1. 開啟郵箱的POP3/SMTP服務。進入郵箱 > 設置 > 賬戶

 

 

 

2. application.properties配置郵箱

#郵件發送配置
spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.qq.com
spring.mail.username= 這里填發送驗證的郵箱
spring.mail.password= 這里填郵箱的那個授權碼
#配置郵箱465端口,否則本地測試可以,放到服務器上就不行
spring.mail.port=465

#這個端口有時候會出錯,添加以下ssl配置。或者把端口改為 25

spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.Controller
/**
 * 忘記密碼模塊的發送郵箱驗證碼
 * 傳入郵箱即可如"toEmail":"123@qq.com"
 * @param httpServletRequest
 * @param jsonObject
 * @return
 */
@RequestMapping(value = "/send/email",method = RequestMethod.POST)
@ResponseBody
public CodeMsg<Object> sendEmail(HttpServletRequest httpServletRequest, @RequestBody JSONObject jsonObject){
String toEmail = jsonObject.getString("toEmail");
    try {
        String emailCode = userService.sendEmailCode(httpServletRequest,toEmail);
        return new CodeMsg<>(200,"發送驗證碼完成",emailCode);
    } catch (Exception e) {
        log.error("\n####" + e.getMessage(), e);
        return new CodeMsg<>(500, e.getMessage(), null);
    }
}

4.Service
 1 /**
 2  * 給郵箱發送驗證碼  3  *  4  * @param httpServletRequest  5  * @return
 6      */
 7  @Override  8     public String sendEmailCode(HttpServletRequest httpServletRequest, String toEmail) {  9         //生成隨機驗證碼
10         String checkCode = String.valueOf(new Random().nextInt(899999) + 100000); 11         SimpleMailMessage message = new SimpleMailMessage(); 12  message.setFrom(fromEmail); 13  message.setTo(toEmail); 14         message.setSubject("這是一個郵件主題——系統郵件"); 15         message.setText("您正在修改您的密碼,本次驗證碼為:" + checkCode + "\n 如非本人操作,請忽略!謝謝"); 16  mailSender.send(message); 17         logger.info("郵件發送成功"); 18         return checkCode; 19     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM