使用技术
jdk >=1.8
maven >=3.0
springboot
准备工作
登录邮箱——打开设置——开启SMTP服务
创建springboot项目
导入依赖
<!--SpringBoot集成邮件发送启动器坐标-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
编写配置文件application.yml
spring:
mail:
host: smtp.163.com
default-encoding: utf-8
username: 网易邮箱@163.com
password: SMTP开启后提供的密码
实现邮箱使用方法
@Component
public class MailServiceImpl {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
/**
* 发送普通文本邮件
*/
public void sendSimpleMail(String to, String subject, String content) throws MailException {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from); // 邮件发送者
message.setTo(to); // 邮件接受者
message.setSubject(subject); // 主题
message.setText(content); // 内容
mailSender.send(message);
}
/**
* 发送带图片邮件邮件
*/
public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
File file = new File(rscPath);
FileSystemResource res = new FileSystemResource(file);
helper.addInline(rscId, res);
mailSender.send(message);
}
/**
* 发送HTML邮件
*/
public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
//true 表⽰示需要创建⼀一个 multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
}
/**
* 发送带附件的邮件
*/
public void sendAttachmentsMail(String to, String subject, String content, String filePath) throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = file.getFilename();
helper.addAttachment(fileName, file);
mailSender.send(message);
}
}
实现步骤
1.后端生成验证码
2.后端将验证码保存到缓存或者数据库中(建议保存的redis实现方便自带过期功能,但占用内存大)
3.后端将验证码发送到用户邮箱
4.用户查看邮箱验证码之后,填写发送
5.后端和生成的验证码进行对比实现登录
|