首先建立数据库,我的数据库为:

CREATE TABLE user
(uid varchar(11) primary key , -- 账号type int default 1,            -- 类型, 1注册会员, 2广告方, 3管理员name varchar(50) ,             -- 昵称email varchar(50),            -- 邮箱password varchar(50),         -- 密码active char(1) default '0',        -- 激活状态coin int   default  1000             -- 金币
);

其次在utils中创建MySendMailThread.java文件,代码内容为:

package utils;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
import javaBean.User;public class MySendMailThread extends Thread {private User user = null;public MySendMailThread(User user) {this.user = user;}@Overridepublic void run() {// 跟smtp服务器建立一个连接Properties p = new Properties();// 设置邮件服务器主机名p.setProperty("mail.host", "smtp.qq.com");// 指定邮件服务器,默认端口 25// 发送服务器需要身份验证p.setProperty("mail.smtp.auth", "true");// 要采用指定用户名密码的方式去认证// 发送邮件协议名称p.setProperty("mail.transport.protocol", "smtp");// 开启SSL加密,否则会失败MailSSLSocketFactory sf = null;try {sf = new MailSSLSocketFactory();} catch (GeneralSecurityException e1) {e1.printStackTrace();}sf.setTrustAllHosts(true);p.put("mail.smtp.ssl.enable", "true");p.put("mail.smtp.ssl.socketFactory", sf);// 开启debug调试,以便在控制台查看// session.setDebug(true);也可以这样设置// p.setProperty("mail.debug", "true");// 创建sessionSession session = Session.getDefaultInstance(p, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 用户名可以用QQ账号也可以用邮箱的别名PasswordAuthentication pa = new PasswordAuthentication("*********@qq.com", "**********");// new PasswordAuthentication中第一个为发邮件的自己的QQ号,第二个为授权码(需要到QQ邮箱中获取)return pa;}});session.setDebug(true);// 设置打开调试状态try {// 声明一个Message对象(代表一封邮件),从session中创建MimeMessage msg = new MimeMessage(session);// 邮件信息封装// 1发件人msg.setFrom(new InternetAddress("867679310@qq.com"));// 2收件人msg.setRecipient(RecipientType.TO, new InternetAddress(user.getEmail()));// 3邮件内容:主题、内容msg.setSubject(user.getName() + ",欢迎注册综合类信息网站账号,请点击链接激活账号");// StringBuilder是线程不安全的,但是速度快,这里因为只会有这个线程来访问,所以可以用这个StringBuilder sbd = new StringBuilder();sbd.append(user.getName() + "<br/>欢迎!请确认此邮件地址以激活您的账号。<br/>");sbd.append("<font color='red'><a href='http://127.0.0.1:8080/ActiveServlet?uid="+ user.getUid() + "' target='_blank'");sbd.append(">立即激活</a></font><br/>");sbd.append("或者点击下面链接:<br/>");sbd.append("http://127.0.0.1:8080/ActiveServlet?uid=" + user.getUid() + "<br/>");sbd.append("这是一封自动发送的邮件;如果您并未要求但收到这封信件,您不需要进行任何操作。");msg.setContent(sbd.toString(), "text/html;charset=utf-8");// 发html格式的文本// 发送动作Transport.send(msg);System.out.println("给" + user.getEmail() + "发送邮件成功。");} catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}
}

在UserServices的注册方法中调用util工具类中的MySendMailThread.java中的方法,代码如下:

public boolean regist( User user ){new MySendMailThread( user ).run();return userDao.insert( user );
}

最后在登录中的UserLoginServlet.java文件中添加如下判断,通过查询数据库中的Active字段是否置1来判断用户是否登录邮箱进行邮箱激活,代码为:

if(user.getActive().equals("0")){String loginMsg="未使用邮箱激活账号,请打开您的邮箱激活!";request.setAttribute("loginMsg",loginMsg);request.getRequestDispatcher("/login.jsp").forward(request,response);
}

idea实现注册登录时使用QQ邮箱激活功能相关推荐

  1. 对于AES和RSA算法的结合使用以及MD5加盐注册登录时的密码加密

    RSA和AES结合使用 接上篇的RSA和AES算法加密之后,AES对称算法对数据量大的加密比较快,而RSA公私钥加密的话会影响加密效率,但是AES的加密与解密的密钥是一致的,导致密钥不能外泄,密钥在网 ...

  2. SpringBoot实现QQ邮箱发送功能

    SpringBoot实现QQ邮箱发送功能 一. 前言 1.互联网发展到现在,相必大家都知道发送邮件应该是网站的必备功能之一:用户注册发送邮箱验证.忘记密码.监控提醒以及发送营销信息等. Spring提 ...

  3. 发送qq邮箱激活邮件工具类

    qq邮箱授权码在设置找 package com.Util;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.*; impo ...

  4. 黑马旅游网编写练习(2)--邮箱激活功能

    黑马旅游网编写练习(2)–邮箱激活功能 当用户进行注册时,一般会需要使用邮箱进行激活:所以在这里也模拟一下注册后邮箱的激活功能. 首先导入发送邮箱的jar包mail.jar:或者配置maven地址为: ...

  5. php实现邮箱激活功能

    php实现邮箱激活功能 一.样例 二.文件结构 其中swiftmailer-master是第三方插件,用来发验证邮件 三.核心代码 doAction.php 响应页面 1 <?php 2 hea ...

  6. JavaMail实现邮箱激活功能

    一.软件安装及资源准备 1.下载并安装易邮邮箱服务器和Foxmail邮箱客户端 易邮邮箱服务器下载地址:https://download.csdn.net/download/qq_20788055/1 ...

  7. mysql查询使用qq邮箱注册_Spring Boot实现qq邮箱验证码注册和登录验证功能

    1.登录注册思路 这是一个使用spring boot做的一个qq邮箱注册和登录的项目. 没写前端页面,使用postman测试.有截图详细. 1.1.思路 注册:通过输入的邮箱发送验证码,检验前端传来的 ...

  8. java qq邮箱登录_SpringBoot实现QQ邮箱注册和登录

    1.登录注册思路 这是一个使用spring boot做的一个qq邮箱注册和登录的项目. 没写前端页面,使用postman测试.有截图详细. 1.1.思路 注册:通过输入的邮箱发送验证码,检验前端传来的 ...

  9. Microsoft 帐户异常登录活动,QQ邮箱代收hotmail邮件不成功

    最近打算让QQ邮箱代收hotmail的邮件,总是提示不成功,而且homail里的备用邮箱一直到"安全阻止登录"邮件,同时QQ添加代收也不成功.而且关闭了二步验证还是不行.经过和微软 ...

最新文章

  1. soul一直显示正在登录聊天服务器,soul这个软件,为什么有些人在玩的时间很久以后(两百天以上),就不会再主动和其他人打招呼了?...
  2. 抽象类和接口的联系与区别
  3. HMM学习最佳范例三:隐藏模式
  4. 监听应用是否切到后台
  5. OpenCASCADE绘制测试线束:拓扑命令之基本拓扑
  6. CodeVS 1068-乌龟棋
  7. 【python游戏编程之旅】第一篇---初识pygame
  8. ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
  9. 用户空间缺页异常pte_handle_fault()分析--(上)
  10. 计算机应用公式基础教学教案,《终稿[定稿]大学计算机应用基础全册教案版》...
  11. chrome浏览器打开base64图片
  12. 隔离升压电源模块24V功率可达40W宽电压输入高电压稳压输出
  13. 重启计算机后ip丢失,win10系统重启后ip丢失的处理步骤
  14. java项目-第61期基于ssm项目在线心理测评系统
  15. 漫画:经典谷歌面试题“扔鸡蛋”,看看你会做吗?
  16. P4084 [USACO17DEC]Barn Painting
  17. 内存寻址系列讲座-拨开云雾初见端倪
  18. android判断银行卡号格式不正确,android银行卡号验证算法 android银行卡号验证算法详解...
  19. 高通+android笔记本电脑,华为发布三款笔记本电脑,其中一款搭载高通骁龙850处理器...
  20. 图解SQL面试题:多表如何查询?

热门文章

  1. 怎么做HTML焦点图+实例练习
  2. 无线授时服务器接LED屏,实现ipad远程无线控制led大屏幕分以下几个步骤!
  3. uedit 富文本编辑器 图片上传 图片服务器
  4. 【hexo】基础教程-三-添加网易云音乐
  5. 串口NFC模块,轻松实现NFC通信
  6. nvchad添加插件
  7. qs2021计算机专业排名,2021年QS世界大学专业排名-计算机科学与信息系统
  8. 我眼中的《芳华》读后感作文2500字
  9. 2022年农信银网络安全竞赛3-2 ez_raw简单取证writeup
  10. i春秋新春战疫公益赛复现