在實際項目中,常常須要用到郵件通知功能。好比,用戶經過郵件註冊,經過郵件找回密碼等;又好比經過郵件發送系統狀況,經過郵件發送報表信息等等,實際應用場景不少。這篇文章,就教你們經過springboot快速的實現一個發送郵件的功能。html
這裏以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
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實例。
@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模式。其實還支持多種豐富的模式,好比模板引擎等,這裏就不講解了,其實使用起來大同小異。