QQ邮箱验证码登录(移动端邮箱验证登录)

  1. 获取邮箱授权码
    登录邮箱------->点击设置------->点击账户,下拉------->找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务------->按照步骤开启POP3/SMTP服务 ------->获取授权码

2.在pom.xml中添加依赖:

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

3.配置yml文件:

  mail:host: smtp.qq.com #不同的邮箱不一致,请自行百度查询port: 587 #qq邮箱默认username: 1916403680@qq.com #发送邮箱password: ******** #授权码# 设置是否需要认证,如果为true,那么用户名和密码就必须的,# 如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。auth=true

4.建实体类等等:

具体操作看这

5.写配置文件:

spring:    mail:host: smtp.qq.com #不同的邮箱不一致,请自行百度查询port: 587 #qq邮箱默认username: 1916403680@qq.com #发送邮箱password: zsxhbrjtylbibccc #授权码auth: false #不需要邮件密码

6.写一个工具类用来存放随机验证码方法:

/*** 随机生成验证码工具类*/
public class ValidateCodeUtils {/*** 随机生成验证码* @param length 长度为4位或者6位* @return*/public static Integer generateValidateCode(int length){Integer code =null;if(length == 4){code = new Random().nextInt(9999);//生成随机数,最大为9999if(code < 1000){code = code + 1000;//保证随机数为4位数字}}else if(length == 6){code = new Random().nextInt(999999);//生成随机数,最大为999999if(code < 100000){code = code + 100000;//保证随机数为6位数字}}else{throw new RuntimeException("只能生成4位或6位数字验证码");}return code;}/*** 随机生成指定长度字符串验证码* @param length 长度* @return*/public static String generateValidateCode4String(int length){Random rdm = new Random();String hash1 = Integer.toHexString(rdm.nextInt());String capstr = hash1.substring(0, length);return capstr;}
}

 7.写发送邮件的方法:

public interface UserService extends IService<User> {public String send(User user);
}

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Autowiredprivate JavaMailSender mailSender;//获取配置文件的邮件账号@Value("${spring.mail.username}")private String from;@Overridepublic String send(User user) {//生成随机数String code = ValidateCodeUtils.generateValidateCode(4).toString();try {SimpleMailMessage mailMessage = new SimpleMailMessage();//主题mailMessage.setSubject("验证码邮件");//内容mailMessage.setText("您收到的验证码是:" + code);System.out.println("您收到的验证码是:" + code);//发给谁mailMessage.setTo(user.getPhone());//你自己的邮箱(可以去配置文件中获取)mailMessage.setFrom(from);//发送mailSender.send(mailMessage);} catch (Exception e) {e.printStackTrace();return code;}return code;}
}

 8.写控制类:

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@Autowiredprivate UserService userService;/*** 发送邮件短信验证码* @param user* @return*/@PostMapping("/sendMsg")public R<String> sendMsg(@RequestBody User user, HttpSession session){//获取邮箱String phone = user.getPhone();if(StringUtils.isNotEmpty(phone)){//发送验证码到邮箱String code = userService.send(user);//需要将生成的验证码保存到Sessionsession.setAttribute(phone,code);return R.success("手机验证码短信发送成功");}return R.error("短信发送失败");}/*** 移动端登录* @param map* @param session* @return*/@PostMapping("/login")public R<User> sendMsg(@RequestBody Map map, HttpSession session){//获取邮箱String phone = map.get("phone").toString();//获取验证码String code = map.get("code").toString();//从Session中获取保存的验证码Object codeInSession = session.getAttribute(phone);//进行验证码的比对(页面提交的验证码和Session中保存的验证码比对)if(codeInSession != null && codeInSession.equals(code)){//如果能够比对成功,说明登录成功LambdaQueryWrapper<User> eq = Wrappers.lambdaQuery(User.class).eq(User::getPhone, phone);User user = userService.getOne(eq);if(user == null){//判断当前邮箱账号对应的用户是否为新用户,如果是新用户就自动完成注册user = new User();user.setPhone(phone);user.setStatus(1);userService.save(user);}session.setAttribute("user",user.getId());return R.success(user);}return R.error("登录失败");}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9168.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于学校edu邮箱登录第三方邮件客户端(例如Outlook、Foxmail、QQ邮箱、邮件App等)的注意事项

求实习&#xff0c;找工作的时候用了学校的邮箱&#xff0c;但发现收件不方便查看&#xff0c;很容易错过重要信息&#xff0c;所以需要添加到第三方手机客户端中。以iphone12自带的邮件app为例&#xff1a; 第一步 iphone打开设置——邮件——账户——添加账户——其他——添…

outlook登录QQ邮箱

前期准备 QQ邮箱 软件:outlook 步骤 1.打开网页版QQ邮箱:登录QQ邮箱 2.登录 3.打开设置 4.点击账户 5.点击管理服务 6.发送短信 7.生成授权码 8.复制授权码 9.打开outlook,点击文件 10.添加账户,输入复制的授权码, 注意,这里一定是复制的授权码,不是QQ密码!!! 注意,这里…

Outlook登录163邮箱,qq邮箱以及企业邮箱等邮箱

我用的是outlook2013版本 首先打开文件选择添加账户手动设置或其他服务器类型选择POP或IMAP&#xff0c;点下一步下面以163邮箱为例&#xff0c;qq邮箱和企业邮箱都类似(163邮箱和qq邮箱的pop怎么开启在下一篇博客&#xff0c;一定要先看&#xff0c;里面有登录密码的设置)&…

邮箱客户端如何登录?

邮箱登录的几种方式你了解么&#xff1f;什么情况下用什么登录&#xff0c;了解了这些你使用邮箱时会变得更加顺畅&#xff01;今天就以TomVIP邮箱为例&#xff0c;用不同场景为大家说明一下使用邮箱快捷的办公方式&#xff01; 邮箱客户端登录 客户端相当于是另外一个应用程…

桌面客户端上登入Gmai 邮箱

我是小虾&#xff0c;外贸小白正在精进。如果你恰好也是一名外贸人&#xff0c;欢迎关注我的公众号&#xff1a;万能的Excel 获取更多关于邮件营销资料&#xff01; 针对桌面的客户端收发Gmail 邮件&#xff0c;不管是Outlook, foxmail 等都会遇到--无法登录到 传入&#xff…

个人邮箱怎么在微信里登陆?

在使用个人邮箱时&#xff0c;可能会遇到这种情况&#xff1a;来了一封重要的邮件&#xff0c;但是手边没有电脑&#xff0c;登陆不了邮箱。那么我们应该怎么办呢&#xff1f;其实&#xff0c;现在使用微信同样可以做到登陆邮箱&#xff0c;随时随地查收邮件。下面就以Tom邮箱为…

ChatGPT 与 MindShow 一分钟搞定一个PPT

前言 PPT制作是商务、教育和各种场合演讲的重要组成部分。然而&#xff0c;很多人会花费大量时间和精力在内容生成和视觉设计方面。为了解决这个问题&#xff0c;我们可以利用两个强大的工具——ChatGPT和MindShow&#xff0c;来提高制作PPT的效率。 一、ChatGPT 与 MindShow…

ChatGPT 研究框架(PPT)

推荐阅读干货文章&#xff1a; 全球边缘计算大会上海站讲师演讲材料已出&#xff0c;欢迎戳下方链接查看现场精彩回放&#xff01;2023年3月31日&#xff0c;全球边缘计算大会北京站&#xff0c;欢迎合作&#xff01;

ChatGPT大流行的思考-设想篇

在ChatGPT火热当下&#xff0c;我们不妨设想一下它可以应用到我们生活和工作的哪些方面。作者在对ChatGPT有所了解后&#xff0c;从行业、宏观及微观的角度进行设想&#xff0c;积累灵感&#xff0c;并投身到模型建设中。希望对你也有所启发。 一、宏观及微观角度的设想 1. 宏观…

《花雕学AI》07:AI脑洞大开-盘点最火爆人工智能ChatGPT的23种新颖用法

本文提纲&#xff08;呵呵&#xff0c;想必大家都猜到了&#xff0c;它确实是人工智能帮我做的&#xff0c;看起来比较专业吧&#xff01;&#xff09; 一、引言&#xff1a;介绍ChatGPT是什么&#xff0c;它是基于GPT-3的一个开源的多语言聊天机器人框架&#xff0c;可以生成流…

ChatGPT中 top_p 和 temperature 的作用机制

1. temperature 的作用机制 GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实&#xff08;更接近训练数据&#xff09;…

2023最新商业版ChatGPT网站源码4.8.0+功能强大/新增一键安装

正文: 安装教程: 一台VPS 搭建宝塔 解析域名 上传程序至根目录 访问首页在线安装配置数据库 PHP版本选择:7.3 安装完成后访问网站首页即可&#xff01; 配置APIKEY&#xff0c;登录网站后台自定义配置&#xff0c;不然网站无法使用&#xff01; 网站后台地址/admin 默…

ChatGPT商业源码授权

ChatGPT商业源码是由OpenAI公司开发并拥有版权的&#xff0c;未经授权擅自使用、复制、分发或修改可能涉及侵犯知识产权等法律问题&#xff0c;并可能会受到相应的法律惩罚。 如果您需要使用ChatGPT商业版&#xff0c;可以考虑通过OpenAI官方渠道进行授权购买。此外&#x…

商业版ChatGPT(C端+管理后台)

简介 本项目是一个商用版服务平台&#xff0c;基于Java语言实现服务端功能&#xff0c;前端使用React框架&#xff0c;底层使用官方的ChatGPT API。用户可以通过一键部署方便地使用本平台。除了支持chat对话模型外&#xff0c;还支持openai官方所有api&#xff0c;包括余额查询…

【ChatGPT前世今生】前置知识Seq2Seq入门理解

【ChatGPT前世今生】前置知识Seq2Seq入门理解 1、环境准备与依赖包安装2、数据集准备3、数据集预处理与读取4、定义Seq2Seq模型的基础类5、预处理训练数据集6、定义训练过程7、定义验证过程8、执行训练与验证过程9、展示模型的结果&#xff0c;进行进一步分析 最近一段时间&…

数据分析 × 人文社科:高校交叉学科教学经验分享

随着新一轮科技革命与产业变革的加速演进&#xff0c;学科间的交叉融合不断升级&#xff0c;由数据驱动的系列交叉学科备受瞩目&#xff0c;然而&#xff0c;在实际教学与学科建设的过程中&#xff0c;对于数据科学引入至相关学科&#xff0c;高校教师还是普遍面临着比较多的问…

华为又招了一名天才少年,他背后的故事堪称传奇!

上一篇&#xff1a;ChatGPT的工作原理&#xff08;纯干货&#xff0c;万字长文&#xff09; 2019年6月&#xff0c;华为创始人任正非发起华为“天才少年”项目&#xff0c;用顶级挑战和顶级薪酬去吸引顶尖人才的项目。并表示&#xff0c;华为将从全世界招进20-30名天才少年&…

华为又招了一名天才少年!

2019年6月&#xff0c;华为创始人任正非发起华为“天才少年”项目&#xff0c;用顶级挑战和顶级薪酬去吸引顶尖人才的项目。并表示&#xff0c;华为将从全世界招进20-30名天才少年&#xff0c;2020年还计划从世界范围招进200-300名天才少年。 这不就在上个月&#xff0c;华为最…

打造人工智能创新之源,共建昇思开源新生态

3月31日&#xff0c;由昇思MindSpore开源社区主办的昇思开源三周年生日会如期举行。本次生日会对即将发布的昇思MindSpore 2.0正式版本进行预告、发布了最新版的昇思大模型平台&#xff0c;同时还发布了昇思大模型技术公开课程。生日会给开发者展示了三年来昇思在人才培养、开源…

如何顺势而为,让ChatGPT为教育所用?

恐惧和回避无法阻挡科技的浪潮&#xff0c;教育与AI的深度融合时代已经到来&#xff0c;如何把AI当做工具&#xff0c;把其成为教育的机会而非威胁&#xff0c;是教育体系未来不得不得面对的新变化。 接受ChatGPT作为一种教学辅助工具&#xff0c;成为教师的朋友或者帮手&…