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

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

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

JavaMailSender是什么

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

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

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

發(fā)送簡(jiǎn)單郵件

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

public class MailTest {
    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private TemplateEngine templateEngine;
    @Test
    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();    // 構(gòu)建一個(gè)郵件對(duì)象
        message.setSubject("郵件主題:這是一封測(cè)試郵件");            // 設(shè)置郵件主題
        message.setFrom("xxx@qq.com");                    // 設(shè)置郵件發(fā)送者
        message.setTo("xxx@xx.cn");                 // 設(shè)置郵件接收者,可以有多個(gè)接收者
//        message.setCc("xx@xx.cn");               // 設(shè)置郵件抄送人,可以有多個(gè)抄送人
//        message.setBcc("xx@xx.cn");              // 設(shè)置隱秘抄送人,可以有多個(gè)
        message.setSentDate(new Date());                        // 設(shè)置郵件發(fā)送日期
        String mailMsg = "這是由Springboot發(fā)送的第一封簡(jiǎn)單測(cè)試郵件,發(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("郵件主題:這是一封測(cè)試帶附件的郵件");
        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ū)別呢?圖片資源是放在郵件正文中的,即一打開(kāi)郵件,就能看到圖片。但是一般來(lái)說(shuō),不建議使用這種方式,一些公司會(huì)對(duì)郵件內(nèi)容的大小有限制(因?yàn)檫@種方式是將圖片一起發(fā)送的)。

 @Test
    public void sendImgResMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("郵件主題:這是一封測(cè)試帶圖片資源的郵件");
        helper.setFrom("xx@qq.com");
        helper.setTo("xx@qq.com");
        helper.setSentDate(new Date());
        helper.setText("<p>hello 大家好,這是一封測(cè)試郵件,這封郵件包含兩種圖片,分別如下</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 作郵件模板

在公司實(shí)際開(kāi)發(fā)中,第一種和第三種都不是使用最多的郵件發(fā)送方案。因?yàn)檎?lái)說(shuō),郵件的內(nèi)容都是比較的豐富的,所以大部分郵件都是通過(guò) HTML 來(lái)呈現(xiàn)的,
如果直接拼接 HTML 字符串,這樣以后不好維護(hù),為了解決這個(gè)問(wèn)題,一般郵件發(fā)送,都會(huì)有相應(yīng)的郵件模板。
最具代表性的兩個(gè)模板就是 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 大家好,這是一封測(cè)試郵件,這封郵件包含一種圖片,如下</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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

和平区| 东乌珠穆沁旗| 寿光市| 青神县| 丰县| 砚山县| 寿光市| 镇远县| 溧水县| 安龙县| 涿州市| 天镇县| 二手房| 顺昌县| 荣成市| 衡阳县| 惠州市| 广安市| 凤阳县| 保德县| 仁怀市| 富平县| 清丰县| 乡宁县| 贡觉县| 葫芦岛市| 无极县| 清镇市| 交口县| 惠东县| 台中县| 永新县| 庆阳市| 应城市| 南充市| 民勤县| 杭州市| 道孚县| 甘孜县| 赫章县| 湘潭市|