最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot?JavaMailSender發(fā)送郵件功能(實例詳解)

 更新時間:2024年03月15日 11:45:25   作者:Mr.朱鵬  
JavaMailSender是Spring提供的,非常好用的,實現(xiàn)郵件發(fā)送的接口 ,這篇文章主要介紹了SpringBoot?JavaMailSender發(fā)送郵件功能,需要的朋友可以參考下

JavaMailSender是什么

JavaMailSender是Spring提供的,非常好用的,實現(xiàn)郵件發(fā)送的接口

在Spring Boot的Starter模塊中也為此提供了自動化配置,支持發(fā)送郵件

JavaMailSenderImpl是spring封裝的郵件發(fā)送封裝類,支持普通文本、附件、html。

發(fā)送簡單郵件

簡單郵件就是指郵件內(nèi)容是一個普通的文本文檔

public class MailTest {
    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private TemplateEngine templateEngine;
    @Test
    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();    // 構(gòu)建一個郵件對象
        message.setSubject("郵件主題:這是一封測試郵件");            // 設(shè)置郵件主題
        message.setFrom("xxx@qq.com");                    // 設(shè)置郵件發(fā)送者
        message.setTo("xxx@xx.cn");                 // 設(shè)置郵件接收者,可以有多個接收者
//        message.setCc("xx@xx.cn");               // 設(shè)置郵件抄送人,可以有多個抄送人
//        message.setBcc("xx@xx.cn");              // 設(shè)置隱秘抄送人,可以有多個
        message.setSentDate(new Date());                        // 設(shè)置郵件發(fā)送日期
        String mailMsg = "這是由Springboot發(fā)送的第一封簡單測試郵件,發(fā)件人:xx-哈哈";
        message.setText(mailMsg);                               // 設(shè)置郵件的正文
        javaMailSender.send(message);                           // 發(fā)送郵件
    }

發(fā)送帶附件的郵件

圖片、普通文件,都是支持的

  @Test
    public void sendAttachFileMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("郵件主題:這是一封測試帶附件的郵件");
        helper.setFrom("xx@qq.com");
        helper.setTo("xx@qq.com");
//        helper.setCc("xx@xx.cn");
//        helper.setBcc("xx@xx.cn");
        helper.setSentDate(new Date());
        helper.setText("這是由Springboot發(fā)送的第二封帶附件的郵件,發(fā)件人:x-哈哈");
        File file = new File("/Users/xx/朱x/朱x.jpg");
        helper.addAttachment("xx.jpg", file);
        javaMailSender.send(mimeMessage);
    }

發(fā)送帶圖片資源的郵件

圖片資源和附件有什么區(qū)別呢?圖片資源是放在郵件正文中的,即一打開郵件,就能看到圖片。但是一般來說,不建議使用這種方式,一些公司會對郵件內(nèi)容的大小有限制(因為這種方式是將圖片一起發(fā)送的)。

 @Test
    public void sendImgResMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("郵件主題:這是一封測試帶圖片資源的郵件");
        helper.setFrom("xx@qq.com");
        helper.setTo("xx@qq.com");
        helper.setSentDate(new Date());
        helper.setText("<p>hello 大家好,這是一封測試郵件,這封郵件包含兩種圖片,分別如下</p><p>第一張圖片:</p><img src='cid:p01'/><p>第二張圖片:</p><img src='cid:p02'/>", true);
        helper.addInline("p01", new FileSystemResource(new File("/Users/xx/朱x/xx.jpg")));
        helper.addInline("p02", new FileSystemResource(new File("/Users/zhupeng/xx/WechatIMG47.jpg")));
        javaMailSender.send(mimeMessage);
    }

使用 Freemarker 作郵件模板

在公司實際開發(fā)中,第一種和第三種都不是使用最多的郵件發(fā)送方案。因為正常來說,郵件的內(nèi)容都是比較的豐富的,所以大部分郵件都是通過 HTML 來呈現(xiàn)的,
如果直接拼接 HTML 字符串,這樣以后不好維護,為了解決這個問題,一般郵件發(fā)送,都會有相應(yīng)的郵件模板。
最具代表性的兩個模板就是 Freemarker 模板和 Thyemeleaf 模板了

    @Test
    public void sendFreemarkerMail() throws MessagingException, IOException, TemplateException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("郵件主題:這是一封Freemarker渲染的郵件");
        helper.setFrom("xx@qq.com");
        helper.setTo("xx@qq.com");
        helper.setSentDate(new Date());
        // 構(gòu)建 Freemarker 的基本配置
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
        configuration.setClassLoaderForTemplateLoading(MailTest.class.getClassLoader(), "templates");
        Template template = configuration.getTemplate("mail_freemarker.ftl");
        // 模板渲染,渲染的結(jié)果將被保存到 out 中 ,將out 中的 html 字符串發(fā)送即可
        StringWriter out = new StringWriter();
        template.process(new User(1001, "xx", 10000.00), out);
        helper.setText(out.toString(), true);
        javaMailSender.send(mimeMessage);
    }

使用 Thymeleaf 作郵件模板,帶附件+圖片

  public void sendThymeleafMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("郵件主題:這是一封Thymeleaf渲染的郵件");
        helper.setFrom("xx@qq.com");
        helper.setTo("xx@qq.com");
        helper.setSentDate(new Date());
        File file = new File("/Users/xx/xx/xx.jpg");
        helper.addAttachment("xx.jpg", file);
        helper.setText("<p>hello 大家好,這是一封測試郵件,這封郵件包含一種圖片,如下</p><p>第一張圖片:</p><img src='cid:p01'/>", true);
        helper.addInline("p01", new FileSystemResource(new File("/Users/xx/朱x/朱x.jpg")));
        Context context = new Context();
        context.setVariable("userName", "朱xx");
        context.setVariable("num", "000001");
        context.setVariable("salary", "99999");
        String process = templateEngine.process("mail_thymeleaf.html", context);
        helper.setText(process, true);
        javaMailSender.send(mimeMessage);
    }

到此這篇關(guān)于SpringBoot JavaMailSender發(fā)送郵件功能的文章就介紹到這了,更多相關(guān)SpringBoot JavaMailSender發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

景洪市| 颍上县| 鄂托克旗| 蕉岭县| 诸城市| 黑龙江省| 梨树县| 泸水县| 筠连县| 社旗县| 固镇县| 侯马市| 巴青县| 枣庄市| 任丘市| 华池县| 白玉县| 杭州市| 镇远县| 渑池县| 通道| 个旧市| 郯城县| 凤庆县| 海兴县| 监利县| 阿荣旗| 内乡县| 历史| 蒙城县| 保康县| 合川市| 陆良县| 西城区| 湘西| 汾西县| 阜新市| 固镇县| 福清市| 濉溪县| 辽宁省|