spring boot集成spring-boot-starter-mail郵件功能


前情提要

以目前IT系統功能來看,郵件功能是非常重要的一個功能。例如:找回密碼、郵箱驗證,郵件動態碼、忘記密碼,郵件營銷等,都需要用到郵件功能。結合當下最流行的spring boot微服務,推出了spring-boot-starter-mail郵件支持包。

功能使用

引入maven包
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
相關參數配置(以QQ郵箱為例)
private static JavaMailSenderImpl javaMailSender;
    static {
        javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.qq.com");//鏈接服務器
        //javaMailSender.setPort(25);//默認使用25端口發送
        javaMailSender.setUsername("QQ郵箱");//賬號
        javaMailSender.setPassword("授權碼");//授權碼
        javaMailSender.setDefaultEncoding("UTF-8");

        Properties properties = new Properties();
        //properties.setProperty("mail.debug", "true");//啟用調試
        //properties.setProperty("mail.smtp.timeout", "1000");//設置鏈接超時
        //設置通過ssl協議使用465端口發送、使用默認端口(25)時下面三行不需要
        properties.setProperty("mail.smtp.auth", "true");//開啟認證
        properties.setProperty("mail.smtp.socketFactory.port", "465");//設置ssl端口
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

        javaMailSender.setJavaMailProperties(properties);
    }
郵件發送代碼(此方法支持文本和html郵件)
@ResponseBody
@RequestMapping("/mailSend")
public void mailSend(){
        log.info("--------------[mail/mailSend] start------------------");
        try {
            MimeMessage message=javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message,true);
            helper.setFrom("272286717@qq.com","272286717");
            helper.setTo("qsf179636252@163.com");
            helper.setSubject("測試郵件");
            helper.setText("測試郵件內容",true);
            javaMailSender.send(message);
        } catch (Exception e) {
            log.error("郵件發送失敗", e.getMessage());
            e.printStackTrace();
        }
        log.info("--------------[mail/mailSend] end------------------");
    }

測試

測試地址

http://localhost:6677/api/mail/mailSend

日志輸出

登錄163郵箱查看是否收到郵件

總結

  • spring boot對mail的封裝支持非常好,使用方便,簡單幾行代碼就可以把郵件集成進來
  • QQ郵箱和163郵箱,使用的授權碼,而不是登錄密碼,如果是郵箱登錄密碼,郵件是發不出去的


免責聲明!

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



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