700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > spring boot实现发送邮件功能

spring boot实现发送邮件功能

时间:2021-04-02 22:27:59

相关推荐

spring boot实现发送邮件功能

一、发送text邮件

1. 导入jar包

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

2. 邮箱参数配置(以新浪邮箱为例)

3. 使用JavaMailSender发送邮件

配置文件application.properties

# MailPropertiesspring.mail.host=spring.mail.port=465spring.mail.username=xxxxxx@ # 邮箱账号spring.mail.password=xxxxxxxxxx # 开通pop3/smtp服务时所给的授权码spring.mail..protocol=smtpsspring.mail.properties.mail.smtp.ssl.enable=true

MailClient.java

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.mail.javamail.MimeMessageHelper;import org.ponent;import org.springframework.mail.javamail.JavaMailSender;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;@Componentpublic class MailClient {private static final Logger logger = LoggerFactory.getLogger(MailClient.class);@Autowiredprivate JavaMailSender mailSender;@Value("${spring.mail.username}")private String from;public void sendMail(String to,String subject,String content){try {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content,true);mailSender.send(helper.getMimeMessage());} catch (MessagingException e) {logger.error("发送邮件失败"+e.getMessage());}}}

测试MailTest.java

import munity.util.MailClient;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)@SpringBootTest@ContextConfiguration(classes = CommunityApplication.class)public class MailTest {@Autowiredprivate MailClient mailClient;@Testpublic void testTextMail(){mailClient.sendMail("xxxxxx@","TEST","hello,xxxxxx.");}}

二、利用thymeleaf模板发送html邮件

1. 新建模板demo.html

<!DOCTYPE html><html lang="en" xmlns:th=""><head><meta charset="UTF-8"><title>邮箱示例</title></head><body><p>欢迎您,<span style="color:red;" th:text="${username}"></span>!</p></body></html>

2. 测试 MailTest.java

import munity.util.MailClient;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringRunner;import org.thymeleaf.TemplateEngine;import org.thymeleaf.context.Context;@RunWith(SpringRunner.class)@SpringBootTest@ContextConfiguration(classes = CommunityApplication.class)public class MailTest {@Autowiredprivate MailClient mailClient;@Autowiredprivate TemplateEngine templateEngine;@Testpublic void testHtmlMail(){Context context = new Context();context.setVariable("username","sunday");String content = templateEngine.process("/mail/demo",context); //模板存放的位置System.out.println(content);mailClient.sendMail("xxxxxq@","HTML",content);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。