SpringBoot——发送HTML格式的邮件

目录

项目总结

新建一个SpringBoot项目

pom.xml

application.properties配置文件

EmailService服务类

SpringbootMailHtmlApplicationTests测试类


项目总结

在SpringBoot项目中发送HTML格式的邮件的思路:

  1. 添加依赖:在项目中添加spring-boot-starter-mail依赖来简化配置。

  2. 配置邮件发送参数:在application.properties或application.yml文件中,配置邮件发送所需的参数,包括SMTP服务器地址、端口、认证信息等。

  3. 创建邮件服务类:创建一个用于发送邮件的服务类,其中包含发送HTML格式邮件的方法。

  4. 编写邮件模板:创建HTML格式的邮件模板,可以使用Thymeleaf等模板引擎来构建模板。

  5. 发送邮件:在需要发送邮件的地方调用邮件服务类的方法,传入邮件模板和其他必要的参数。

新建一个SpringBoot项目

项目结构:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.12.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.study</groupId>
	<artifactId>springboot_mail_html</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot_mail_html</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
			<version>2.3.12.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

application.properties配置文件

# 下列信息大多在开启邮箱的SMTP服务时,配置说明里有
# SMTP服务器端口号
spring.mail.port=465
# 提供发送邮件服务的邮箱账号
spring.mail.username=3328518414@qq.com
# 提供发送邮件服务的邮箱授权码
spring.mail.password=xxx
# SMTP服务器主机地址
spring.mail.host=smtp.qq.com
# 是否开启权限验证
spring.mail.properties.mail.smtp.auth=false
# 是否开启SSL验证
spring.mail.properties.mail.smtp.ssl.enable=true
# 是否开启debug模式
spring.mail.properties.mail.debug=true

EmailService服务类

  • 注意:
    • MimeMessageHelper 工具类用于配置邮件的属性
    • templateEngine 将数据模型注入到模板中,并生成最终的HTML
  • 在运行时报错:Error:(8, 21) java: 程序包org.thymeleaf不存在
    • 解决办法:在Terminal里运行命令
    • mvn idea:idea
package com.study.springboot_mail_html.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

@Service
public class EmailService {

    @Autowired
    JavaMailSender javaMailSender;

    @Autowired
    TemplateEngine templateEngine;

    public String sendHtmlMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();

        //工具类MimeMessageHelper用于配置邮件的属性
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
        helper.setFrom("3328518414@qq.com");
        helper.setTo("3328518414@qq.com");
        helper.setSubject("JavaMailSender发送邮件测试");

        //设置模板中的变量
        Context context = new Context();
        context.setVariable("username","融创软通");
        context.setVariable("num","001");
        context.setVariable("salary","¥100000");
        String value = templateEngine.process("template.html",context);//将数据模型注入到模板中,并生成最终的HTML
        helper.setText(value,true);//true表示发送HTML格式的邮件。
        javaMailSender.send(mimeMessage);
        return "HTML格式的邮件发送成功!";
    }
}

SpringbootMailHtmlApplicationTests测试类

package com.study.springboot_mail_html;

import com.study.springboot_mail_html.service.EmailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.mail.MessagingException;


@SpringBootTest
class SpringbootMailHtmlApplicationTests {

    @Autowired
    EmailService emailService;

    @Test
    public void test() throws MessagingException {
        emailService.sendHtmlMail();
    }
}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot可以通过JavaMailSender发送HTML邮件。以下是发送HTML邮件的步骤: 1. 在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 2. 在application.properties文件中添加SMTP服务器的配置信息: ``` spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=your-email@gmail.com spring.mail.password=your-email-password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 3. 创建一个邮件服务类,该类使用JavaMailSender发送HTML邮件: ``` @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendHtmlEmail(String to, String subject, String htmlBody) throws MessagingException { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); helper.setTo(to); helper.setSubject(subject); helper.setText(htmlBody, true); javaMailSender.send(message); } } ``` 4. 在需要发送HTML邮件的地方调用邮件服务类的sendHtmlEmail方法: ``` @Autowired private EmailService emailService; public void sendEmail() throws MessagingException { String to = "recipient-email@example.com"; String subject = "Test HTML Email"; String htmlBody = "<h1>Hello World!</h1><p>This is a test HTML email.</p>"; emailService.sendHtmlEmail(to, subject, htmlBody); } ``` 以上就是使用Spring Boot发送HTML邮件的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戏拈秃笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值