SpringBoot學習之路---發送帶附件的郵件

這篇博客簡單記錄一下,如何通過SpringBoot發送帶附件的郵件


首先還是需要導入maven相關依賴:

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

接着SpringBoot在相關的自動配置類中幫我們導入一個組件:

	@Bean
    JavaMailSenderImpl mailSender(Session session) {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setDefaultEncoding(this.properties.getDefaultEncoding().name());
        sender.setSession(session);
        return sender;
    }

因此就可以直接注入使用JavaMailSenderImpl發送郵件即可。

在全局配置(application.yaml)配置屬性:

spring:
  mail:
    host: smtp.qq.com #如果是qq郵箱就這麼填,如果是別的郵箱,就填對應的地址
    username: ********@qq.com
    password: ************* # 需要短信發送授權碼,具體的方法可以去郵箱主頁查看
    default-encoding: UTF-8

測試類代碼:

@SpringBootTest
class SpringbootDemoApplicationTests {

    @Autowired
    private JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() throws Exception{
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        mimeMessageHelper.setSubject("測試");
        mimeMessageHelper.setText("<a href='http://www.baidu.com'>點擊這裏</a>",true);
        mimeMessageHelper.setFrom("***********@qq.com");
        mimeMessageHelper.setTo("**********@qq.com");

        //發送附件
        mimeMessageHelper.addAttachment("favicon.ico",new File("/Users/air/Documents/favicon.ico"));

        javaMailSender.send(mimeMessage);
    }

}

方法解釋:

  • createMimeMessage():創建一個複雜的message對象,它的功能比以前的SimpleMimeMessage
  • new MimeMessageHelper(mimeMessage, true): 由於MimeMessage沒有發送附件的相應方法,所以需要藉助工具類,而MimeMessageHelper就是這樣一個工具類。它的構造方法有兩個參數,第一個傳入要操作的MimeMessage,第二個爲是否支持multipart,我們都要發送附件了,那肯定要支持了。
  • **setXXX:**設置各種參數,略
  • mimeMessageHelper.addAttachment(“favicon.ico”,new File("/Users/air/Documents/favicon.ico")): 該方法作用,發送附件了,第一個參數是顯示在郵件中的文件名稱,第二個參數是File對象
  • javaMailSender.send(mimeMessage): 發送郵件。

接着看看是否發送成功:

在這裏插入圖片描述
bingo~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章