1 分鐘教會你用 Spring Boot 發郵件

Spring Boot 提供了一個發送郵件的簡單抽象,使用的是下面這個接口。java

org.springframework.mail.javamail.JavaMailSender

Spring Boot 提供了一個 starter,並能自動配置,下面來作個小例子,順便解析它作了什麼工做。spring

0、你所需具有的基礎

更多請在Java技術棧微信公衆號後臺回覆關鍵字:boot。微信

一、添加依賴

在 Maven pom.xml 配置文件中加入 spring-boot-starter-mail 依賴。app

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

二、添加配置參數

而後在 application.properties 文件中加入如下配置。socket

spring.mail.host=smtp.exmail.qq.com
spring.mail.username=admin@javastack.cn
spring.mail.password=123456

# 啓動SSL時的配置
spring.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.smtp.socketFactory.fallback=false
spring.mail.smtp.socketFactory.port=465

三、一個簡單的發送郵件例子

寫一個控制器,寫一個簡單的發送郵件的小例子,發送成功返回 true,發送失敗返回 falsespring-boot

@Autowired
private JavaMailSender javaMailSender;

@RequestMapping("/sendEmail")
@ResponseBody
public boolean sendEmail() {
    SimpleMailMessage msg = new SimpleMailMessage();
    msg.setFrom("admin@javastack.cn");
    msg.setBcc();
    msg.setTo("admin@javastack.cn");
    msg.setSubject("Java技術棧投稿");
    msg.setText("技術分享");
    try {
        javaMailSender.send(msg);
    } catch (MailException ex) {
        System.err.println(ex.getMessage());
        return false;
    }
    return true;
}

四、自動配置都作了什麼?

Spring Boot 發現類路徑下有這個 spring-boot-starter-mail 包和 spring.mail.host 參數就會自動配置 JavaMailSenderImpl源碼分析

上面那些 spring.mail.xx 參數用來裝配 MailProperties 這個類。spa

org.springframework.boot.autoconfigure.mail.MailProperties

自動配置類:.net

org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

org.springframework.boot.autoconfigure.mail.MailSenderPropertiesConfiguration

其實就是用了上面裝配的參數註冊了一個 JavaMailSenderImpl 實例而已,而後你就能夠注入使用了。3d

本文原創首發於微信公衆號:Java技術棧(id:javastack),關注公衆號在後臺回覆 "boot" 可獲取更多,轉載請原樣保留本信息。
相關文章
相關標籤/搜索