引入jar包

    <!--邮件发送功能依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

配置properties(yml)

    spring:
      mail:
          protocol: smtp #smtp是邮件发送协议,pop3和imap是邮件接收协议。因为我们要发送邮件,因此是smtp
          host: smtp.qq.com #邮件发送服务器的主机,这里采用的是QQ邮箱来发送邮件
          port: 465 #邮件发送服务器的端口
          auth: true #一般情况下,发送邮件都是要进行验证
          username: 1239474058@qq.com #邮件发送服务器的用户名
          password: mptwyvufdggcbgab #此处不是账户密码而是权限码(可以在邮箱中开启服务得到)
          properties: #由于smtp属于变种协议,需要申明ssl
            mail:
              smtp:
                ssl:
                  enable: true

Controller实现

只发送信息

    public String send(){
            //建立邮件消息
            SimpleMailMessage mainMessage = new SimpleMailMessage();
            //发送者
            mainMessage.setFrom("xxxxx@126.com");
            //接收者
            mainMessage.setTo("xxxx@qq.com");
            //发送的标题
            mainMessage.setSubject("测试邮件");
            //发送的内容
            mainMessage.setText("hello world");
            jms.send(mainMessage);
            return "1";
        }

发送带附件的邮件

常规使用中,可以将文件转为流传送

    MimeMessage mailMessage = javaMailSender.createMimeMessage();
     
    //开启带附件true
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
    messageHelper.setFrom("1239474058@qq.com");//发送者.
    messageHelper.setTo("849732277@qq.com");//接收者.
    messageHelper.setSubject("测试邮件");//邮件主题.
    messageHelper.setText(emailText);//邮件内容.
    //文件一
    FileSystemResource file1 = new FileSystemResource(new File("C:\\1.jpg"));
    FileSystemResource file2= new FileSystemResource(new File("C:\\2.jpg"));
    messageHelper.addAttachment("附件-1.jpg", file1);
    messageHelper.addAttachment("附件-2.jpg", file2);
     
    javaMailSender.send(mailMessage);//发送邮件

假如使用了Thymeleaf模板引擎,可以发送html

    @Autowired
    private TemplateEngine templateEngine;
     
    MimeMessage mailMessage = javaMailSender.createMimeMessage();
    // context 对象用于注入要在模板上渲染的信息
    Context context = new Context();
    context.setVariable("adminList",list);
    String emailText = templateEngine.process("testMain",context);
     
    //开启带附件true
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
    messageHelper.setFrom("1239474058@qq.com");//发送者.
    messageHelper.setTo("849732277@qq.com");//接收者.
    messageHelper.setSubject("测试邮件");//邮件主题.
    messageHelper.setText(emailText,true);//邮件内容.
    //文件一
    FileSystemResource file1 = new FileSystemResource(new File("C:\\1.jpg"));
    FileSystemResource file2= new FileSystemResource(new File("C:\\2.jpg"));
    messageHelper.addAttachment("附件-1.jpg", file1);
    messageHelper.addAttachment("附件-2.jpg", file2);
     
    javaMailSender.send(mailMessage);//发送邮件

其中setText中加true是开启html传送,会识别html标签