springboot快速发送邮件

使用Spring-Boot的Mail来发送邮件,只需要导入依赖,配置参数,即可开始使用

  • 1.导入spring-boot-starter-mail依赖
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
  • 2.配置邮件参数,示例QQ邮箱
    邮箱授权码获取方法:QQ邮箱获取授权码
spring.mail.host=smtp.qq.com
spring.mail.port=587
#发送人的邮箱
spring.mail.username=[email protected]
#授权码
spring.mail.password=xxxxxxxxxxxxxxxx
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactory=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
  • 3.测试发送简单邮件
	@Autowired
    JavaMailSender javaMailSender;

    @Test
    public void testSendMail() throws Exception {
        MimeMessage msg = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        helper.setSubject("这是一个测试邮件主题");
        helper.setText("测试邮件的内容");
        //发送人邮箱,与配置文件中保持一致
        helper.setFrom("[email protected]");
        //接收人邮箱
        helper.setTo("[email protected]");
        helper.setSentDate(new Date());
        javaMailSender.send(msg);
    }
  • 4.测试发送携带附件的邮件
	@Autowired
    JavaMailSender javaMailSender;
	
	@Test
    public void testSendMailAndAccessory() throws MessagingException {
        MimeMessage msg = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        helper.setSubject("这是一个测试邮件主题(含附件)");
        helper.setText("测试邮件的内容(含附件)");
        //发送人邮箱,与配置文件中保持一致
        helper.setFrom("[email protected]");
        //接收人邮箱
        helper.setTo("[email protected]");
        helper.setSentDate(new Date());
        helper.addAttachment("course.jpg", new File("E:\\course.jpg"));
        javaMailSender.send(msg);
    }
  • 5.测试发送携带图片的邮件
	@Autowired
    JavaMailSender javaMailSender;
	
	@Test
    public void testSendMailAndImg() throws Exception {
        MimeMessage msg = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        helper.setSubject("这是一个测试邮件主题(含图片)");
        helper.setText("测试邮件的内容
第一张图:
第二张图:"
, true); //发送人邮箱,与配置文件中保持一致 helper.setFrom("[email protected]"); //接收人邮箱 helper.setTo("[email protected]"); helper.setSentDate(new Date()); helper.addInline("p01", new File("E:\\1.jpg")); helper.addInline("p02", new File("E:\\2.png")); javaMailSender.send(msg); }
  • 6.使用thymeleaf模板发送邮件

额外依赖:

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

html模板 mail.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <h1>Hello 欢迎 <span style="color: red" th:text="${username}"></span> 使用该邮件!</h1>
    </div>
</body>
</html>
	@Autowired
    JavaMailSender javaMailSender;
	
	@Autowired
    TemplateEngine templateEngine;

    @Test
    public void testByThymeleafSendMail() throws Exception {
        MimeMessage msg = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);

        helper.setSubject("这是一个测试邮件主题(thymeleaf)");
        
        //进行模板渲染
        Context context = new Context();
        context.setVariable("username", "小王");
        String process = templateEngine.process("mail.html", context);
        
        helper.setText(process, true);
		//发送人邮箱,与配置文件中保持一致
        helper.setFrom("[email protected]");
        //接收人邮箱
        helper.setTo("[email protected]");
        helper.setSentDate(new Date());
        javaMailSender.send(msg);
    }

你可能感兴趣的:(SpringBoot)