SpringBoot JavaMailSender 发送邮件

Spring给我们提供了一个非常好用的发送邮件接口 JavaMailSender 本文主要讲述如何在SpringBoot中使用 JavaMailSender 发送邮件

先创建一个springboot项目,引入JavaMailSender 的依赖

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

所有的配置都做好了,下面我们先发送一份简单邮件试试 邮件主题:简单邮件1 邮件内容:测试邮件内容1

@RestController
public class SendController {
          
   

    @Autowired
    private JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String from;

    @RequestMapping("send1")
    public String send1(){
          
   
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo("目标邮箱");
        message.setSubject("主题:简单邮件1");
        message.setText("测试邮件内容1");
        mailSender.send(message);
        return "发送成功";
    }
}

在邮件内容中插入图片

@RequestMapping("send2")
    public String send2(){
          
   
        MimeMessage message = mailSender.createMimeMessage();
        try {
          
   
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(from);
            helper.setTo("目标邮箱");
            helper.setSubject("带图片的邮件");
            helper.setText("<html><body>123456<br>下面是图片<br><img width=250px src=cid:img110 ></body></html>", true);
            File file = new File(ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/img/测试.png");
            FileSystemResource res = new FileSystemResource(file);
            helper.addInline("img110", res);
        } catch (MessagingException e) {
          
   
            System.out.println("邮件创建失败");
            e.printStackTrace();
        }
        mailSender.send(message);
        return "发送成功";
    }

发送带附件的邮件

@RequestMapping("send3")
public String send3(){
          
   
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = null;
    try {
          
   
        helper = new MimeMessageHelper(message, true);
        helper.setFrom(from);
        helper.setTo("目标邮箱地址");
        helper.setSubject("带附件的邮件");
        helper.setText("自己看附件了", true);
        FileSystemResource file = new FileSystemResource(new File(ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/file/测试.rar"));
        String fileName = file.getFilename();
        helper.addAttachment(fileName, file);
    } catch (MessagingException e) {
          
   
        e.printStackTrace();
    }
    mailSender.send(message);
    return "发送成功";
}

接受到的邮件内容如下所示

参考:

经验分享 程序员 微信小程序 职场和发展