在實際項目中,常常須要用到郵件通知功能。好比,用戶經過郵件註冊,經過郵件找回密碼等;又好比經過郵件發送系統狀況,經過郵件發送報表信息等等,實際應用場景不少。這篇文章,就教你們經過springboot快速的實現一個發送郵件的功能。java
這裏以QQ郵箱爲例。登陸QQ郵箱以後,點擊設置,點擊帳戶。以下圖:spring
點擊開啓IMAP/SMTP服務。springboot
記下QQ郵箱提示的受權碼:app
這個受權碼,就是發送郵件時須要的密碼。spring-boot
以上步驟完成以後,就能夠開始開發了。spa
在springboot項目中,引入以下依賴:3d
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
複製代碼
在springboot項目中引入依賴以後,便可在其配置文件中配置郵箱的參數:code
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。若是是其它郵箱,搜索下便可找到。cdn
username爲郵箱帳號,password爲上面步驟中提到的受權碼。xml
郵箱參數配置完以後,便可直接注入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的樣式。咱們須要使用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模式。其實還支持多種豐富的模式,好比模板引擎等,這裏就不講解了,其實使用起來大同小異。