SpringBoot整合了Java Mail可以很方便的发送电子邮件。
我们来看看如何发送HTML格式的电子邮件。
导入邮件依赖
在SpringBoot的pom文件中导入电子邮件的starter。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置邮件信息
在application.properties中配置邮箱信息,包括邮件服务器地址、用户名和密码。
spring.mail.host=smtp.qq.com
spring.mail.username=123@qq.com
spring.mail.password=456
注入邮件发送器
使用@Autowired注解注入JavaMailSender对象。
@Autowired
private JavaMailSender javaMailSender;
4.构造HTML邮件
创建mimeMessage对象发送HTML邮件。
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
try {
helper.setFrom("123@qq.com(帅锅)");
helper.setTo("456@qq.com");
helper.setSubject("你好");
helper.setText("<a href='https://www.qq.com'>点我</a>",true);
} catch (MessagingException e) {
e.printStackTrace();
}
通过MimeMessageHelper对象设置邮件信息。
setText第一个参数是邮件的正文,在这里输入HTML代码
setText第二个参数是设置是否是HTML邮件,要设置为true
方法 | 作用 |
helper.setFrom | 设置发件人地址,可以通过“()”设置别名 |
helper.setTo | 设置收件人地址 |
helper.setSubject | 设置邮件标题 |
helper.setText | 设置邮件正文,第二个参数设置是否为HTML邮件 |
发送邮件
通过 javaMailSender.send方法发送电子邮件,参数是构建的mimeMessage对象。
@Component
public class MailServiceImpl implements MailService{
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendMail() {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
try {
helper.setFrom("123@qq.com(帅锅)");
helper.setTo("456@qq.com");
helper.setSubject("你好");
helper.setText("<a href='https://www.qq.com'>点我</a>",true);
} catch (MessagingException e) {
e.printStackTrace();
}
javaMailSender.send(mimeMessage);
}
}
测试
通过测试方法测试邮件发送。
@SpringBootTest
public class MailTest {
@Autowired
private MailService mailService;
@Test
void test(){
mailService.sendMail();
}
}
邮箱收到了发送的邮件,连接是可以点击的,是一个HTML格式的邮件。