Spring Boot實現發送郵件

發送郵件

在web開發中,發送郵件是一個很常用的功能,Spring Boot也集成瞭發送郵件的功能

基本使用

使用Spring Boot的發送郵件功能,需要導入郵件的starter依賴

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

配置郵件發送服務器的配置,如果是qq郵箱,password屬性為郵箱的授權碼

spring:
  mail:
    host: smtp.qq.com
    username: [email protected]
    password: xxxxxxxx
    properties:
      mail.smtp.ssl.enable: true

創建一個簡單郵件對象SimpleMailMessage,設置郵件的主題,內容,發件人和收件人,然後自動註入JavaMailSenderImpl對象,使用這個對象的send方法發送郵件

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("測試郵件");
        message.setText("這是一封測試郵件");
        message.setTo("[email protected]");
        message.setFrom("[email protected]");
        mailSender.send(message);
    }

}

這樣就可以發送簡單郵件瞭

發送復雜郵件

發送復雜郵件,可以使用發送類的createMimeMessage方法創建一個復雜郵件對象MimeMessage,這個方法還有一個重載方法,可以讀取IO流創建郵件對象

創建一個用於設置郵件的對象MimeMessageHelper,這個對象可以設置多種郵件的常用屬性,這裡以設置附件為例

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    void contextLoads() throws MessagingException {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");
        messageHelper.setSubject("測試復雜郵件");
       // 設置帶樣式的正文,使用html的方式設置樣式
        messageHelper.setText("<h1>這是一封測試郵件</h1><p style='color:red'>請查收附件</p>",true);
       // 讀取本地的一個文件,設置郵件的附件
        messageHelper.addAttachment("附件1.jpg",new File("1.png"));
        messageHelper.addAttachment("附件2.jpg",new File("2.png"));
        messageHelper.setTo("[email protected]");
        messageHelper.setFrom("[email protected]");
        mailSender.send(message);
    }

}

設置好郵件的屬性,然後用發送類發送郵件,就可以收到復雜郵件

郵件中的附件也可以打開

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: