注册登录
1. 发送邮件
在自己邮箱开启SMTP服务,pom.xml中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
邮箱参数配置
spring 相关配置
spring:
#发送者邮箱相关配置
mail:
# SMTP服务器域名
host: smtp.163.com
# 编码集
default-encoding: UTF-8
# 邮箱用户名
username: csp******@163.com
# 授权码(注意不是邮箱密码!)
password: WDS*******XCQA
# 协议:smtps
protocol: smtps
# 详细配置
properties:
mail:
smtp:
# 设置是否需要认证,如果为true,那么用户名和密码就必须的,
# 如果设置false,可以不设置用户名和密码
# (前提要知道对接的平台是否支持无密码进行访问的)
auth: true
# STARTTLS[1] 是对纯文本通信协议的扩展。
# 它提供一种方式将纯文本连接升级为加密连接(TLS或SSL)
# 而不是另外使用一个端口作加密通信。
starttls:
enable: true
required: true
邮件发送工具类 JavaMailSender createMimeMessage,MimeMessageHelper,setTo,setFrom,setSubject,setText,mailSender.send(helper.getMimeMessage)
@Component
public class MailClient {
private static final Logger logger = LoggerFactory.getLogger(MailClient.class);
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
/**
* 发送邮件
* @param to 收件人
* @param subject 邮件主题
* @param content 邮件内容
*/
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);// 邮件内容,第二个参数true表示支持html格式
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
logger.error("发送邮件失败: " + e.getMessage());
}
}
}
测试发送
@Autowired
private MailClient mailClient;
@Test
void test02(){
mailClient.sendMail("11xxxxxxx@qq.com","TEST","测试邮件发送!");
}
使用Thymleaf模板引擎发送html格式邮件
…
// 激活邮件发送
Context context = new Context();// org.thymeleaf.context.Context 包下
context.setVariable("email", user.getEmail());
// http://csp1999.natapp1.cc/community/activation/用户id/激活码
String url = path + contextPath + "/activation/" + user.getId() + "/" + user.getActivatio
context.setVariable("url", url