1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SpringBoot整合qq邮箱验证码使用

SpringBoot整合qq邮箱验证码使用

时间:2018-11-03 20:33:18

相关推荐

SpringBoot整合qq邮箱验证码使用

目录

准备工作

依赖

yml配置

Config

Service层接口

ServiceImpl实现

Controller层

准备工作

依赖

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

yml配置

spring:mail:# 你的邮箱地址username: 3103896408@# 授权码password: ******# 默认的邮件编码为UTF-8default-encoding: UTF-8# 邮件服务器地址host: port: 465properties:mail:transport:protocol: smtpssmtps:ssl:enable: trueauth: truestarttls:enable: true

Config

package com.ma.springboot_test01.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.JavaMailSenderImpl;import java.util.Properties;/*** @author Mtz* @version 1.0* @/4/910:40* @function* @comment*/@Configuration@ConfigurationProperties(prefix = "spring.mail")public class MailSenderConfig {@Value("${spring.mail.host}")private String host;@Value("${spring.mail.port}")private int port;@Value("${spring.mail.username}")private String username;@Value("${spring.mail.password}")private String password;@Beanpublic JavaMailSender mailSender() {JavaMailSenderImpl mailSender = new JavaMailSenderImpl();mailSender.setHost(host);mailSender.setPort(port);mailSender.setUsername(username);mailSender.setPassword(password);mailSender.setJavaMailProperties(getMailProperties());return mailSender;}private Properties getMailProperties() {Properties properties = new Properties();properties.put("mail.transport.protocol", "smtps");properties.put("mail.smtps.auth", "true");properties.put("mail.smtps.starttls.enable", "true");properties.put("mail.smtps.ssl.enable", "true");properties.put("mail.smtps.ssl.trust", host);return properties;}}

Service层接口

int Register(String username, String password, String email, String verificationCode);

ServiceImpl实现

package com.ma.springboot_test01.service.impl;import com.ma.springboot_test01.mapper.UserMapper;import com.ma.springboot_test01.entity.User;import com.ma.springboot_test01.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.stereotype.Service;/*** @author Mtz* @version 1.0* @/4/610:40* @function* @comment*/@Servicepublic class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Autowiredprivate JavaMailSender mailSender;@Overridepublic int Register(String username, String password, String email, String verificationCode) {int register = userMapper.register(username, password, email, verificationCode);return register;}// 发送验证码的方法@Overridepublic void sendCode(String toEmail, String code) {// 邮件内容String subject = "欢迎注册";String text = "您好,感谢您注册我们的服务。您的验证码为:" + code + ",请在5分钟内完成验证。";// 实现 接口JavaMailSenderImpl javaMailSender = (JavaMailSenderImpl) mailSender;SimpleMailMessage message = new SimpleMailMessage();message.setFrom(javaMailSender.getUsername());message.setTo(toEmail);message.setSubject(subject);message.setText(text);mailSender.send(message);}}

Controller层

@PostMapping("/register")public R<Integer> register(@RequestBody User user) {User login = userService.login(user.getUsername());System.out.println("输入的数据:" + user.getUsername());System.out.println("查询的数据" + login);if (CheckData.isUsername(user.getUsername()) == false) {return R.error("用户名不合法");}if (CheckData.isPassword(user.getPassword()) == false) {return R.error("密码不合法");}if (CheckData.isQQEmail(user.getEmail()) == false) {return R.error("邮箱不合法");}int register = userService.Register(user.getUsername(), user.getPassword(), user.getEmail(), user.getCaptchaValue());return R.success(register);}/*发送验证码!*/@PostMapping("/sendEmail")public R<String> sendEmail(@RequestBody User user) {if (CheckData.isQQEmail(user.getEmail()) == false) {return R.error("邮箱不合法");}// 生成随机验证码String code = getSixCode();if (!code.equals(user.getCaptchaValue())) {R.error("验证码错误");}userService.sendCode(user.getEmail(), code);return R.success("发送成功");}private String getSixCode() {// 生成6位随机数字验证码return String.valueOf((int) ((Math.random() * 9 + 1) * 100000));}

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