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/mailSendhtml

日誌輸出

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

總結

  • spring boot對mail的封裝支持很是好,使用方便,簡單幾行代碼就能夠把郵件集成進來
  • QQ郵箱和163郵箱,使用的受權碼,而不是登陸密碼,若是是郵箱登陸密碼,郵件是發不出去的
相關文章
相關標籤/搜索