【快學springboot】使用springboot發送郵件

前言

在實際項目中,常常須要用到郵件通知功能。好比,用戶經過郵件註冊,經過郵件找回密碼等;又好比經過郵件發送系統狀況,經過郵件發送報表信息等等,實際應用場景不少。這篇文章,就教你們經過springboot快速的實現一個發送郵件的功能。html

開啓smtp

這裏以QQ郵箱爲例。登陸QQ郵箱以後,點擊設置,點擊帳戶。以下圖:java

點擊開啓IMAP/SMTP服務。spring

記下QQ郵箱提示的受權碼:springboot

這個受權碼,就是發送郵件時須要的密碼。app

以上步驟完成以後,就能夠開始開發了。spring-boot

引入依賴

在springboot項目中,引入以下依賴:code

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

配置文件

在springboot項目中引入依賴以後,便可在其配置文件中配置郵箱的參數:xml

application.properties

spring.mail.host=smtp.qq.com
spring.mail.username=happyjava@foxmail.com
spring.mail.password=xxxxxxxx
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

由於是QQ郵箱,因此host須要使用smtp.qq.com。若是是其它郵箱,搜索下便可找到。htm

username爲郵箱帳號,password爲上面步驟中提到的受權碼。blog

注入JavaMailSender實例

郵箱參數配置完以後,便可直接注入JavaMailSender實例。

@Autowired
private JavaMailSender javaMailSender;

發送普通郵件

普通郵件,沒有樣式。實現起來最容易:

@Test
public void testSend() throws MessagingException {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom("happyjava@foxmail.com");
    message.setTo("1015030682@qq.com");
    message.setSubject("這是標題");
    message.setText("這是內容");
    javaMailSender.send(message);
}

From須要和配置文件中的username一致,不然會報錯。

To爲郵件接收者;

Subject爲郵件的標題;

Text爲郵件的內容。

運行方法,便可收到郵件:

發送HTML郵件

不少時候,咱們須要郵件帶有美觀的樣式。這時候,可使用HTML的樣式。咱們須要使用javaMailSender的createMimeMessage方法,構建一個MimeMessage,而後使用MimeMessage實例建立出MimeMessageHelper。以下:

@Test
public void testSend() throws MessagingException {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
    messageHelper.setSubject("標題");
    messageHelper.setFrom("happyjava@foxmail.com");
    messageHelper.setTo("1015030682@qq.com");
    messageHelper.setText("<h1>標題</h1><br/><p>這是內容</p>", true);
    javaMailSender.send(messageHelper.getMimeMessage());
}

這裏須要注意的是,setText的時候須要傳一個布爾值進去,表名須要使用HTML樣式。

運行方法查看結果:

能夠看到,h1的樣式已經出來了。

總結

本文講解了如何在springboot中快速的發郵件。介紹了兩種發送郵件的方式:一、普通模式;二、HTML模式。其實還支持多種豐富的模式,好比模板引擎等,這裏就不講解了,其實使用起來大同小異。

相關文章
相關標籤/搜索