<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Fork me on GitHub

      SpringBoot系列之發送郵件極速入門與實踐

      一、Email前言介紹

      郵件發送業務,是很多公司都有的,本博客介紹一下基于SpringBoot的郵件發送功能,郵箱服務基于騰訊QQ郵箱

      SpringBoot的肯定有很多場景啟動器starter,SpringBoot官方提供了spring-boot-starter-mail作為郵件服務的場景啟動器

      二、Email例子實踐

      2.1 開發實驗環境準備

      • JDK 1.8
      • SpringBoot2.2.1
      • Maven 3.2+
      • 開發工具
        • IntelliJ IDEA
        • smartGit

      創建一個SpringBoot Initialize項目,詳情可以參考我之前博客:SpringBoot系列之快速創建項目教程

      2.2 Meavn配置文件

      配置spring-boot-starter-mail:

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

      配置Thymeleaf模板引擎

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

      lombok,非必須,只是不想寫bean類的set,get

      <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
                  <optional>true</optional>
              </dependency>
      

      2.3 application配置

      新建application.yml,注意password在QQ郵箱里不是郵箱密碼,需要去申請SMTP服務給的secret

      spring:
        mail:
          host: smtp.qq.com
          username: your_emial@qq.com
          password: cmlebzqdtvejdibe
          default-encoding: utf-8
      
      

      向騰訊申請secret:
      在這里插入圖片描述
      網易163郵箱的配置:

      spring: 
          mail:
              host: smtp.163.com
              username: your163account@163.com
              password: your163password
              default-encoding: utf-8
      

      2.4 發送文本格式郵件

      Email DTO類:

      package com.example.springboot.email.bean;
      
      import lombok.Data;
      
      /**
       * <pre>
       *      EmailDto
       * </pre>
       *
       * <pre>
       * @author mazq
       * 修改記錄
       *    修改后版本:     修改人:  修改日期: 2020/07/22 16:26  修改內容:
       * </pre>
       */
      @Data
      public class EmailDto {
      
          /**
           * 發送對象
           */
          private String sendTo;
          /**
           * 發送主題
           */
          private String subject;
          /**
           * 郵件內容
           */
          private String content;
          /**
           * 發起對象
           */
          private String sendFrom;
          /**
           * 附件路徑數組
           */
          private String[] filePaths;
          /**
           * 內嵌圖片ID
           */
          private String inlineImgId;
          /**
           * 內嵌圖片路徑
           */
          private String inlineImgPath;
      }
      
      

      新建EmailService類:

      @Autowired
          MailProperties mailProperties;
          @Autowired
          JavaMailSender javaMailSender;
      
          /**
           *  發送文本郵件
           * @Author mazq
           * @Date 2020/07/22 16:31
           * @Param [email]
           * @return
           */
          public void sendTextMail(EmailDto email) {
              SimpleMailMessage mailMessage = new SimpleMailMessage();
              mailMessage.setTo(email.getSendTo());
              mailMessage.setSubject(email.getSubject());
              mailMessage.setText(email.getContent());
              mailMessage.setFrom(mailProperties.getUsername());
              javaMailSender.send(mailMessage);
          }
      

      junit測試:

      @Test
          void testSendTextMail(){
              EmailDto emailDto = new EmailDto();
              emailDto.setSendTo("your_email@qq.com");
              emailDto.setSubject("發送文本郵件");
              emailDto.setContent("測試發送文本郵件!");
              emailService.sendTextMail(emailDto);
          }
      

      在這里插入圖片描述

      2.5 發送Html格式郵件

       /**
           *  發送Html郵件
           * @Author mazq
           * @Date 2020/07/22 16:31
           * @Param [email]
           * @return
           */
          public void sendHtmlMail(EmailDto email) throws MessagingException {
              MimeMessage mailMessage = javaMailSender.createMimeMessage();
              MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
              messageHelper.setTo(email.getSendTo());
              messageHelper.setSubject(email.getSubject());
              messageHelper.setText(email.getContent(),true);
              messageHelper.setFrom(mailProperties.getUsername());
              javaMailSender.send(mailMessage);
          }
      

      Junit測試:

      @Test
          void testSendHtmlMail() throws MessagingException {
              EmailDto emailDto = new EmailDto();
              emailDto.setSendTo("your_email@qq.com");
              emailDto.setSubject("發送html郵件");
              String html = "<html><head><title>email</title></head><body><h1>測試發送html郵件</h1></body></html>";
              emailDto.setContent(html);
              emailService.sendHtmlMail(emailDto);
          }
      

      在這里插入圖片描述

      2.6 發送html內嵌圖片

      2.5介紹了發送html格式的郵件,如果html里要加上圖片?具體實現請看下文:

      /**
           *  發送html內嵌圖片郵件
           * @Author mazq
           * @Date 2020/07/22 16:31
           * @Param [email]
           * @return
           */
          public void sendInLineImgMail(EmailDto email) throws MessagingException {
              MimeMessage mailMessage = javaMailSender.createMimeMessage();
              MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
              messageHelper.setTo(email.getSendTo());
              messageHelper.setSubject(email.getSubject());
              messageHelper.setText(email.getContent(),true);
              messageHelper.setFrom(mailProperties.getUsername());
              FileSystemResource fileSystemResource = new FileSystemResource(new File(email.getInlineImgPath()));
              messageHelper.addInline(email.getInlineImgId(), fileSystemResource);
              javaMailSender.send(mailMessage);
          }
      

      這邊加上圖片路徑:

      @Test
          void testSendInLineImgMail() throws MessagingException {
              String inlineImgPath = "C:\\Users\\Administrator\\Desktop\\007Tv3Vmly1ggxvrzrytij31hc0u047h.jpg";
              String srcId = "img01";
              EmailDto emailDto = new EmailDto();
              emailDto.setSendTo("your_email@qq.com");
              emailDto.setSubject("發送html內嵌圖片郵件");
              emailDto.setInlineImgId(srcId);
              emailDto.setInlineImgPath(inlineImgPath);
              String html = "<html><head><title>email</title></head><body><h1>發送html內嵌圖片郵件</h1>"+
                      "<img src=\'cid:"+ srcId +"\'></img>" +
                      "</body></html>";
              emailDto.setContent(html);
              emailService.sendInLineImgMail(emailDto);
          }
      

      測試發送成功:
      在這里插入圖片描述

      2.7 發送模板html郵件

      如果發送html郵件,郵件里的內容要動態的,這種可以怎么實現?寫html的字符串,然后去發送也是可以,不過如果用模板引擎就可以簡潔點,請看代碼:

      先寫個html,引入Thymeleaf模板引擎

      <!DOCTYPE html>
      <html lang="en" xmlns:th="http://www.thymeleaf.org">
      <head>
          <meta charset="UTF-8" />
          <title>模板郵件</title>
      </head>
      <body>
      您好,<span th:text="${username}"></span>,歡迎訪問我的CSDN博客:
      <a >CSDN鏈接</a>
      </body>
      </html>
      

      Junit測試:

      @Test
          void testSendTemplateEmail() throws MessagingException {
              Context context = new Context();
              context.setVariable("username", "admin");
              context.setVariable("id", "123456789");
              EmailDto emailDto = new EmailDto();
              emailDto.setSendTo("your_emial@qq.com");
              emailDto.setSubject("發送模板html郵件");
              emailDto.setContent(templateEngine.process("test",context));
              emailService.sendHtmlMail(emailDto);
          }
      

      測試成功,數據是動態的
      在這里插入圖片描述

      2.8 發送Attachment郵件

      如果要發送帶附件的郵件,怎么實現?請看代碼:

      /**
           *  發送附件郵件
           * @Author mazq
           * @Date 2020/07/22 16:31
           * @Param [email]
           * @return
           */
          public void sendAttachmentMail(EmailDto email) throws MessagingException {
              MimeMessage mailMessage = javaMailSender.createMimeMessage();
              MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
              messageHelper.setTo(email.getSendTo());
              messageHelper.setSubject(email.getSubject());
              messageHelper.setText(email.getContent(),true);
              messageHelper.setFrom(mailProperties.getUsername());
              for (String filePath : email.getFilePaths()) {
                  FileSystemResource fileSystemResource = new FileSystemResource(new File(filePath));
                  messageHelper.addAttachment(fileSystemResource.getFilename() , fileSystemResource);
              }
              javaMailSender.send(mailMessage);
          }
      
       @Test
          void testSendAttachmentMail() throws MessagingException {
              String[] filePaths = new String[]{"C:\\Users\\Administrator\\Desktop\\awrrpt_2_22022_22023.html","C:\\Users\\Administrator\\Desktop\\awr.html"};
              EmailDto emailDto = new EmailDto();
              emailDto.setSendTo("your_email@qq.com");
              emailDto.setSubject("發送附件郵件");
              emailDto.setFilePaths(filePaths);
              String html = "<html><head><title>email</title></head><body><h1>測試發送附件郵件</h1></body></html>";
              emailDto.setContent(html);
              emailService.sendAttachmentMail(emailDto);
          }
      

      在這里插入圖片描述

      代碼例子下載:code download

      posted @ 2020-07-22 20:55  smileNicky  閱讀(417)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人啪精品午夜网站| 丰满人妻熟妇乱又精品视| 真实国产老熟女无套中出| 欧美黑人又粗又大久久久| 老色鬼永久精品网站| av激情亚洲男人的天堂| 久久不见久久见www日本| 欧洲一区二区中文字幕| 久国产精品韩国三级视频| 18禁国产一区二区三区| 强奷乱码中文字幕| 亚洲国产成人精品无色码| 深夜释放自己在线观看| av天堂午夜精品一区| 人人做人人澡人人人爽| 国产成人高清亚洲一区91| 久久精品国产一区二区蜜芽| 国产高清一区二区不卡| 精品国产熟女一区二区三区| 91超碰在线精品| 男女18禁啪啪无遮挡激烈网站| 亚洲欧洲一区二区福利片| 久久国产精品波多野结衣| 国产69精品久久久久乱码免费| 亚洲精品国产av成人网| 国产精品一二二区视在线| 国产精品人成视频免| 九九热免费在线视频观看| 18av千部影片| 欧美人与动牲交A免费观看| 99热久久这里只有精品| 人人爽人人爽人人片av东京热| 99在线视频免费观看| 麻豆精品一区二区三区蜜桃| 九九热视频在线播放| 人妻精品动漫H无码中字| 亚洲一区二区美女av| 国产成人女人在线观看| 绯色蜜臀av一区二区不卡| 老司机免费的精品视频| 国产人与zoxxxx另类|