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


前言

在實際項目中,經常需要用到郵件通知功能。比如,用戶通過郵件注冊,通過郵件找回密碼等;又比如通過郵件發送系統情況,通過郵件發送報表信息等等,實際應用場景很多。這篇文章,就教大家通過springboot快速的實現一個發送郵件的功能。

開啟smtp

這里以QQ郵箱為例。登錄QQ郵箱之后,點擊設置,點擊賬戶。如下圖:

點擊開啟IMAP/SMTP服務。

記下QQ郵箱提示的授權碼:

這個授權碼,就是發送郵件時需要的密碼。

以上步驟完成之后,就可以開始開發了。

引入依賴

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

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

配置文件

在springboot項目中引入依賴之后,即可在其配置文件中配置郵箱的參數:

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。如果是其它郵箱,搜索下即可找到。

username為郵箱賬號,password為上面步驟中提到的授權碼。

注入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中快速的發郵件。介紹了兩種發送郵件的方式:1、普通模式;2、HTML模式。其實還支持多種豐富的模式,比如模板引擎等,這里就不講解了,其實使用起來大同小異。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM