让学习成为一种习惯!--------magic_guo
在微服务项目中一般关于用户的隐私的验证方式有两种:
1、邮件服务
2、短信验证服务
现在稍微大点儿的平台将两种服务都结合在一起,手机短信验证作为常用的验证服务,而邮件服务则是被用作保底的一种手段;短信服务相比于邮件服务还是比较方便快捷,至少来说手机已成为人们生活中不可或缺的一部分;
短信服务有很多平台都已实现,例如阿里云,腾讯云、百度云等都以结合运营商实现了自己的短信服务,但是对于个人用户来说,申请短信服务仍是比较困难,他主要是针对公司和企业;因此这里我们来叙述一下邮件服务:
在spring框架中,已经集成了关于邮件发送的各种服务,适用于各个平台QQ、163等;也实现了SMTP/POP3/IMAP等邮件发送的电子邮件传输的协议;此模块叫做JavaMailSender;
我们以163网易邮箱为列子,这里不再叙述关于邮箱SMTP服务的开通等步骤:
pom文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
使用此依赖,无需再写一个JavaMailSender的配置类直接写好配置文件,注入此类即可使用;
配置文件:
spring:
mail:
host: smtp.163.com
username: 邮箱名字
password: 邮箱的授权码(不是邮箱的密码)
service:
@Service
public class EmailServiceImpl implements IEmailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String fromUser;
@Override
public void sendEmail(Email email) throws MessagingException {
// 1. 创建一个邮件发送类
MimeMessage mimeMessage = mailSender.createMimeMessage();
// 2. 创建一个邮件的模板
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject(email.getTitle());
// true代表如果发送了html的内容,将其格式化;
helper.setText(email.getContent(), true);
helper.setTo(email.getToUser());
helper.setFrom(fromUser);
if (!StringUtils.isEmpty(email.getCcUser())){
helper.setCc(email.getCcUser());
}
mailSender.send(mimeMessage);
}
}
测试类:
@SpringBootTest
class ShopEmailApplicationTests {
@Autowired
private IEmailService emailService;
@Test
void contextLoads() throws MessagingException {
Email email = new Email();
email.setTitle("测试163邮件服务");
email.setContent("验证码为:123123,<a href='http://www.baidu.com'>百度</a>");
email.setToUser("要发送的邮箱");
emailService.sendEmail(email);
}
}
本文章教学视频来自:https://www.bilibili.com/video/BV1tb4y1Q74E?p=3&t=125
静下心,慢慢来,会很快!