1、导入maven依赖

<!--JavaMail基本包--><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency><!--邮件发送的扩展包--><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency>

2、邮箱账户设置QQ邮箱授权
3、发送邮件的封装函数

/**** 邮箱验证发邮件* @param number 验证码* @param senAddress 发邮件的邮箱地址* @param reAddress 目的邮箱地址* @param code 邮箱所需的授权码* @throws MessagingException* @throws GeneralSecurityException* @throws UnsupportedEncodingException*/public void sentSimpleMail(String number,String senAddress,String reAddress,String code)throws MessagingException, GeneralSecurityException, UnsupportedEncodingException {Properties props = new Properties();// 开启debug调试props.setProperty("mail.debug", "true");// 发送服务器需要身份验证props.setProperty("mail.smtp.auth", "true");// 设置邮件服务器主机名props.setProperty("mail.host", "smtp.qq.com");// 发送邮件协议名称props.setProperty("mail.transport.protocol", "smtp");MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);props.put("mail.smtp.ssl.enable", "true");props.put("mail.smtp.ssl.socketFactory", sf);// 根据propertise创建会话javax.mail.Session session = javax.mail.Session.getInstance(props);// 根据会话创建邮件信息Message msg = new MimeMessage(session);// 邮件主题msg.setSubject("注销CA证书");// 创建文本"节点"MimeBodyPart text = new MimeBodyPart();// 这里添加图片的方式是将整个图片包含到邮件内容中text.setContent("您正在注销CA证书,验证码为:"+number+"。(五分钟内有效)", "text/html;charset=UTF-8");// 创建混合节点  将图片节点 文件结点 附件结点 加入MimeMultipart multipart = new MimeMultipart();multipart.addBodyPart(text);msg.setContent(multipart);// 设置邮件发送方msg.setFrom(new InternetAddress(senAddress));// 开始会话传输Transport transport = session.getTransport();// 连接邮箱   加入自己(发送方)授权码transport.connect("smtp.qq.com", senAddress, code);// 给目标邮箱发送邮件transport.sendMessage(msg, new Address[] { new InternetAddress(reAddress) });transport.close();}

4、邮箱验证码生成函数

/**** 邮箱验证生成六位随机数* @return 生成String 类型的六位随机数*/public String randomCode() {StringBuilder str = new StringBuilder();Random random = new Random();for (int i = 0; i < 6; i++) {str.append(random.nextInt(10));}return str.toString();}

5、获取发送邮件时间,判断时间是否超时

/**** 后端将发送邮件的时间记录下载*/
session.setAttribute("time",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));//再获取当前时间进行判断Long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(request.getSession().getAttribute("time").toString()).getTime();Long curtime = new Date().getTime();Long tci = (curtime - time)/(1000*60);//lci就是分钟数,如果lci<=4,就是设定为五分钟之内

javamail QQ邮箱发验证码设定有效时间相关推荐

  1. javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)

    以前的时候想着java发邮件很简单,因为当时使用的是outlook实现的,有兴趣的可以去看看之前的两篇博客文章,1.使用java底层实现邮件的发送(含测试,源码)   和 2.使用Spring实现邮件 ...

  2. SpringBoot通过qq邮箱发送验证码

    SpringBoot通过qq邮箱发送验证码 1.开启qq授权码 2.编写配置文件 spring:#邮箱验证mail:##163 smtp.163.com(反垃圾系统发送不了了)##qq smtp.qq ...

  3. 最简单Java实现QQ邮箱发送验证码

    Java使用QQ邮箱发送验证码 1. 开启服务,获取授权码 需登录自己的QQ邮箱,打开 POP3/SMTP 服务,并获取授权码. 具体操作: 登录邮箱 邮箱首页 "设置" 选择 & ...

  4. java发送qq邮箱验证_JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

  5. react-hooks + node 使用qq邮箱发送验证码,验证修改密码

    在平常,我们写登录注册react项目时,我们可能会考虑使用QQ邮箱发送验证码登录注册,或者使用QQ邮箱验证来修改密码,下面,我们就来使用QQ邮箱来简单发送个邮件. 1.当我们想在react项目中使用Q ...

  6. python使用qq邮箱发邮件

    发现QQ邮箱是个变态的东西...普通网上的教程根本无法搞定这个问题 于是写了这个,用于帮助大家使用python发邮件遇到的问题 第一步: 开启QQ第三方登录,参考文章 https://jingyan. ...

  7. Postfix配置QQ邮箱发邮件

    配置QQ邮箱发邮件 1.这里使用了QQ邮箱的SMTP,需要做以下配置 2.qq邮箱通过生成授权码来设置密码  3.关闭服务器的sendmail服务,开启postfix服务 4.创建证书文件  root ...

  8. Spring Boot 整合163或者qq邮箱发送验证码

    前记 最近做的项目中注册功能要用到验证码,本来想用阿里云的短信服务,但是有点小贵,就另辟捷径,选择了用邮箱来发送验证码.记录一下整合过程,也希望能帮助一些有需要的人. 正文 1.Spring Boot ...

  9. 利用jmail qq邮箱发邮件 报错 解决方法

    利用java的jmail,登录qq邮箱发邮件时遇到下面几个问题,分享一下解决方法. 1. qq需要使用ssl  解决方法:使用有ssl安全认证的代码 <span style="font ...

  10. python向自己qq邮箱发信息_python使用QQ邮箱发送邮件

    使用QQ邮箱发邮件比较繁琐,SMTP密码是动态的 向下滚动,找到smtp,点击开启 发送短信进行验证 腾讯smtp服务器: smtp:smtp.qq.com 端口:465 代码如下: # coding ...

最新文章

  1. mysql客户端连接hive_连接Hive的客户端界面工具–SQuirrel SQL Client
  2. Mybatis的一对一查询以及延迟加载
  3. Python自然语言处理学习笔记(32):4.4 函数:结构化编程的基础
  4. AspectJ 中的pointcut 语法
  5. Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF
  6. mysql 语句 not_mysql sql语句 is not 用法是
  7. mysql是单核吗_一次单核CPU占用过高问题的处理
  8. Ubuntu16.04安装teamver14.1.3
  9. python中的scipy库_SciPy库学习
  10. 设置QQ空间评论回复权限,包括日志、相册、说说、留言板的评论回复和留言权限,限制名单成员无评论回复权限
  11. Python绘制动态图形
  12. 注入神器-----SqlMap的使用
  13. python画长尾图_t-SNE完整笔记 (附Python代码)
  14. Python 什么是flask框架?快速入门
  15. 现代电子计算机元件的发展从电子管,现代计算机技术的发展方向与趋势探索
  16. Fortran写nc文件nbsp;f90nbsp;netcdf
  17. unix纪元 OpenJ_Bailian - 3860
  18. OpenWrt下SSR与XWare迅雷远程冲突问题
  19. 太阳软件站长丨Python比动态ip代理更适合人工智能
  20. 1小时1篇文学会python再做个飞机大战游戏

热门文章

  1. 秋天远程控制V1.0源码(易语言)
  2. 2021-11-08
  3. 2023宁波大学计算机考研信息汇总
  4. apple developer苹果账号过期了如何续费
  5. 植物大战僵尸外挂源码【C语言制作】
  6. Redis数据结构之hash对象
  7. 基于MDKA5D31-EK_T70开发板的QT示例-demo09:LM75A温度曲线
  8. 开心--开始--开发--开心
  9. 计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)
  10. 合作式智能运输系统通信架构