使用SpringBoot发送邮箱验证码的简单实现攻略:
1. 引入邮件发送相关依赖
这里我使用的是spring-boot-starter-mail,只需要在pom.xml文件中添加如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置邮件发送相关信息
在application.properties文件中设置邮件发送相关信息,例如:
spring.mail.host=smtp.qq.com
spring.mail.username=example@qq.com
spring.mail.password=xxxxxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000
3. 编写邮件发送方法
编写一个邮件发送的方法,并且将其注入到Spring容器中。
示例一:
@Service
public class EmailService {
@Autowired
private JavaMailSender javaMailSender;
public void sendSimpleMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("example@qq.com");
message.setTo(to);
message.setSubject(subject);
message.setText(content);
javaMailSender.send(message);
}
}
示例二:
@Service
public class EmailService {
@Autowired
private JavaMailSender javaMailSender;
public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(new InternetAddress("example@qq.com"));
helper.setTo(new InternetAddress(to));
helper.setSubject(subject);
helper.setText(content, true);
javaMailSender.send(message);
}
}
4. 生成验证码
使用随机数生成一个指定长度的验证码,并将其保存到Redis缓存中,并设置过期时间。
示例:
@Component
public class VerifyCodeUtil {
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 生成指定长度的随机数验证码,并将其存入Redis缓存中
*
* @param email
* @param length
* @param expireTime
* @return
*/
public String generateVerifyCode(String email, int length, long expireTime) {
String verifyCode = RandomStringUtils.randomNumeric(length);
redisTemplate.opsForValue().set(email, verifyCode, expireTime, TimeUnit.SECONDS);
return verifyCode;
}
}
5. 发送邮件并包含验证码
在用户需要获取验证码的时候,调用发送邮件的方法,并将生成的验证码添加到邮件内容中。
示例:
@Autowired
private EmailService emailService;
@Autowired
private VerifyCodeUtil verifyCodeUtil;
public void sendVerifyCode(String email) {
// 生成验证码
String verifyCode = verifyCodeUtil.generateVerifyCode(email, 6, 300);
// 邮件发送内容
String subject = "验证码";
String content = "您的验证码为:" + verifyCode + ",请勿将其提供给任何人。";
emailService.sendSimpleMail(email, subject, content);
}
这样就可以简单地通过SpringBoot发送邮件验证码了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用SpringBoot发送邮箱验证码的简单实现 - Python技术站