先去开启163邮箱的smtp服务然后就可以开始撸代码了

添加依赖

 <!--发送邮件的jar包--><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

EmailUtils类:

import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;public class EmailUtils implements Runnable {private String email;//收件人邮箱private String code;//验证码public EmailUtils(String email,String code) {this.email = email;this.code=code;}public void run() {// 1.创建连接对象javax.mail.Session// 2.创建邮件对象 javax.mail.Message// 3.发送一封激活邮件String from = "xxx@163.com";// 发件人电子邮箱String host = "smtp.163.com"; // 指定发送邮件的主机smtp.qq.com(QQ)|smtp.163.com(网易)Properties properties = System.getProperties();// 获取系统属性properties.put("mail.host","smtp.163.com" );//设置主机名properties.put("mail.transport.protocol", "smtp");//发送邮件协议名称properties.put("mail.smtp.auth", true);//是否认证//        properties.setProperty("mail.smtp.host", host);// 设置邮件服务器
//        properties.setProperty("mail.smtp.auth", "true");// 打开认证try {
//            MailSSLSocketFactory sf = null;
//            sf = new MailSSLSocketFactory();
//            // 设置信任所有的主机
//            sf.setTrustAllHosts(true);
//            properties.put("mail.smtp.ssl.enable", "true");
//            properties.put("mail.smtp.ssl.socketFactory", sf);// 1.获取默认session对象Session session = Session.getDefaultInstance(properties, new Authenticator() {public PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("xxx@163.com", "OTJMBKRBASWVHVLW"); // 发件人邮箱账号、授权码}});// 2.创建邮件对象Message message = new MimeMessage(session);// 2.1设置发件人message.setFrom(new InternetAddress(from));// 2.2设置接收人message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));// 2.3设置邮件主题message.setSubject("Penguin账号注册");// 2.4设置邮件内容String content = "<html><head></head><body><h3>欢迎使用Penguin,您的验证码为:</h3><br/><h3>"+code+"</h3>" +"<br/><h3>请您在10分钟内使用此验证码完成注册,过期将会失效。</h3>" +"<br/><h3>如有疑问可拨打客服电话:xxxxxx</h3><br/><h3>请勿回复此邮件,感谢您的合作</h3></body></html>";message.setContent(content, "text/html;charset=UTF-8");// 3.发送邮件Transport.send(message);System.out.println("邮件成功发送!");} catch (Exception e) {e.printStackTrace();}}}

写项目的时候封装了Json和Redis的工具类:JsonData和RedisClient

@RestController
@RequestMapping(value = "/penguin")
public class VerifyEmailController {@Autowiredprivate RedisClient redisClient;@NoneAuth@RequestMapping(value = "/mailsend")public Object sendMail(String email) throws IOException {//生成6位验证码Random random = new Random();StringBuilder code= new StringBuilder();for (int i=0;i<6;i++){code.append(random.nextInt(10));}//开启一个新的线程发送邮件new Thread(new EmailUtils(email, code.toString())).start();redisClient.set(email,code.toString(),600000);return JsonData.buildSuccess();}}

记录一下,怕一扭头就忘了。真实。

JavaWeb项目实现163邮箱验证码相关推荐

  1. python自动获取163邮箱验证码

    PS:主要使用selenuim和谷歌驱动 这个里面难点主要是如何自动登录163邮箱,因为163邮箱里面模块的id或者classname都是动态码 所有首先需要定位登录框的frame 这一步 需要使用s ...

  2. JavaWeb项目实现短信验证码

    一.阿里云开通短信服务 阿里云 设置签名 添加短信模板 签名和模板都需要审核,大概两个小时左右(周末也审核). 获取 用户AccessKey 二.代码 1.pom.xml中添加依赖 <!-- 阿 ...

  3. JAVA 实现发送邮件功能——邮箱验证码

    JAVA 实现发送邮件功能--邮箱验证码 在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式. 首先 想要使用 Java 实现发送邮件 ...

  4. 基于JavaWeb的网页版邮箱系统设计与实现

    资源下载地址:https://download.csdn.net/download/sheziqiong/86790177 资源下载地址:https://download.csdn.net/downl ...

  5. javaweb项目发送邮件自定义发件人名称(javamail)

    在开发javaweb项目里的邮箱验证功能时需要去设置邮件发送人的昵称,在网上找了几个教程,在此罗列出来供大家参考. 方法1.(亲测有效) String nick="";try{ni ...

  6. Python 自动读取163邮箱收取的验证码

    最近项目开发中有个需求,就是自动化实现某系统的登录功能,但是在解决了滑块验证的问题后,又出现了一个新的问题,就是出现了邮箱验证码的问题,于是不得不在追加个功能模块,就是自动化读取对应的邮箱的验证码,然 ...

  7. JavaWeb登录注册系统/界面(邮箱验证码,数据库连接,详细注释,可作结课作业,可用于学习,可接入其他主系统)

    目录 1.前言 2.系统实机演示 3.系统分析与设计 (1)主要软件与工具 (2)系统分析 (3)系统规划 4.系统设计与构建 (1)JavaWeb创建 (2)JavaWeb运行 (3)先期依赖准备: ...

  8. 1024电商项目的邮箱验证码与图形验证码功能模块

    项目基于springcloudalibaba,模块功能大致概括就是登录页面的时候先完成图形验证码的校验,输入的数字和字母与图片上的相对应之后,会向对应的邮箱或手机号发送邮箱/短信验证码二次验证.这里展 ...

  9. python 大众点评模拟登陆_python项目实战:模拟登陆163邮箱,简单到爆

    前言 相信大家都会做一些有趣的Python项目,对于小白的我们来说,如果成功了的话,那成就感是非常爆棚的的,这也是非常有助学习. 接下来,为大家介绍一个selenium 模拟登陆163邮箱的代码 首先 ...

最新文章

  1. Asp.net的Session和Cookie传值方式
  2. 纯JS制作的窗户雨滴效果
  3. 最新版AnyDbTest数据库单元测试工具的下载地址
  4. rhel7 http实例3
  5. application.properties amp;amp;amp; application.yml 配置文件详解(转)
  6. os.walk获取同级目录具有随机性
  7. Swing的设计是MVC的典范
  8. maven仓库理解、下载及设置
  9. 梯度、梯度法、python实现神经网络的梯度计算
  10. apache-tomcat集成,转帖
  11. Kafka连接SparkStreaming的两种方式
  12. nodejs 安装教程
  13. win10下装黑苹果双系统_最完整的黑苹果安装教程,黑苹果安装前准备工具和软件...
  14. 计算机硬盘的容量的最小,计算机硬盘容量大小怎么计算
  15. 《别做正常的傻瓜》笔记……
  16. 开放PLM——Aras Innovator编程学习(一)简介
  17. 探究MySQL的索引结构选型
  18. 交换机虚拟化和堆叠的区别_企业网络基础EI CCIE设计部署如何理解三层交换和路由器的区别...
  19. 幻14 ubuntu20.04 AX210驱动安装
  20. android 百度地图线路规划问题

热门文章

  1. 第26课:个人高效的秘籍 OKR 工作法
  2. MonkeyRunner_MonkeyRunner,MonkeyDevice,MonkeyImage可以调用的方法
  3. lol 5.24版本top5:火男胜率登顶
  4. 如何运营一个软件微社区
  5. HTML网页实现自动刷新
  6. Win10多用户同时远程桌面,并各自操作互不干扰
  7. 不同版本cuda对应的NVIDIA驱动版本
  8. 真无线蓝牙耳机盘点,2020新款游戏低延迟高续航蓝牙耳机
  9. 电脑16G内存升级成32G内存日常使用区别大么?
  10. “AI+教育”假套路还是真功夫,本质还是对AI能力的拷问