基于163实现邮箱验证,需先开启邮箱的SMTP服务,利用javax中的mail包实现对邮件的操作。

依赖文件

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>

MailUtil.java

public class MailUtil {public static final String FROM = "*******@163.com"; //发件人的emailpublic static final String PWD = "*****"; //发件人密码--邮箱密码public static final String URL = "http://****"; //项目主页public static final int TIMELIMIT = 1000*60*60*24; //激活邮件过期时间24小时public static final String HOST = "smtp.163.com"; //163的smtp服务器public static final String SMTP = "smtp";//激活账号public static UserAuth activateMail(UserAuth user) throws Exception {//注册邮箱String email  = user.getAccount();//当前时间戳Long curTime = System.currentTimeMillis();//激活的有效时间Long activateTime = curTime+TIMELIMIT;//激活码--用于激活邮箱账号String token = Md5Util.md5(email+curTime);user.setToken(token);//过期时间user.setTimes(activateTime);//发送的邮箱内容String content = "<p>欢迎使用MINISCENE!<br><br>请在24小时内点击下面的链接激活帐户:"+"<br><a href='"+URL+"/user/activate.html?v=1.0&token="+token+"&email="+email+"'>"+URL+"/user/activate.html?v=1.0&token="+token+"&email="+email+"</a></p>";//调用发送邮箱服务MailUtil.sendMail(email, "MINISCENE账号激活", content);return user;}//找回密码public static int codeMail(String email,String code){//发送的邮箱内容String content = "<p>答应我,不要轻易告诉别人验证码,并在5分钟内重置密码:<br>请收好您的验证码:"+code+"</p>";//调用发送邮箱服务try{MailUtil.sendMail(email, "密码找回", content);return 1;}catch (Exception e){e.printStackTrace();return 0;}}//邮件发送public static void sendMail(String email,String title,String content) throws Exception {Properties props = new Properties(); //加载一个配置文件// 使用smtp:简单邮件传输协议props.put("mail.smtp.host", HOST);//存储发送邮件服务器的信息props.put("mail.smtp.port", 465);//设置端口props.put("mail.smtp.auth", "true");//同时通过验证props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");Session session = Session.getInstance(props);//根据属性新建一个邮件会话MimeMessage message = new MimeMessage(session);//由邮件会话新建一个消息对象message.setFrom(new InternetAddress(FROM));//设置发件人的地址message.setRecipient(Message.RecipientType.CC, new InternetAddress(FROM)); //抄送message.setRecipient(Message.RecipientType.TO, new InternetAddress(email));//设置收件人,并设置其接收类型为TOmessage.setSubject(title);//设置标题//设置信件内容message.setContent(content, "text/html;charset=gbk"); //发送HTML邮件message.setSentDate(new Date());//设置发信时间message.saveChanges();//存储邮件信息//发送邮件Transport transport = session.getTransport(SMTP);transport.connect(FROM, PWD);transport.sendMessage(message, message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址transport.close();}
}

生成token的MD5加密工具:

MD5Util.java

public class Md5Util {//MD5加密,生成32位md5码public static String md5(String inStr){MessageDigest StrMD5 = null;try{StrMD5 = MessageDigest.getInstance("MD5");}catch (Exception e){e.printStackTrace();  return "";  }  char[] charArray = inStr.toCharArray();  byte[] byteArray = new byte[charArray.length];  for (int i = 0; i < charArray.length; i++)byteArray[i] = (byte) charArray[i];byte[] md5Bytes = StrMD5.digest(byteArray);StringBuffer hexValue = new StringBuffer();  for (int i = 0; i < md5Bytes.length; i++){int val = ((int) md5Bytes[i]) & 0xff;if (val < 16)hexValue.append("0");hexValue.append(Integer.toHexString(val));}  return hexValue.toString();  }
}

基于163邮件服务器实现邮箱验证相关推荐

  1. spring 框架-java配置163邮件服务器,发送邮件

    java配置163邮件服务器,发送邮件 首先保证spring框架包的正确导入 1.利用spring的邮件服务 进行配置邮件服务器 再导入:javax.mail.jar这是邮件服务的插件实现 sprin ...

  2. c#使用pop3服务器进行邮箱验证

    环境 开发环境:.net4.0+vs2013 操作系统:win8.1 内容 由于项目需要,拟开发一个模块进行邮箱验证操作,最终采取使用pop3服务器进行邮箱登陆并且获取内容 编码 /// <su ...

  3. outlook设置263邮件服务器,[win10outlook邮箱设置]win10系统中outlook中添加263邮箱设置教程...

    win10系统自带有Outlook邮件,方便用户们管理邮箱,但有一些用户想要在Outlook中添加360邮箱,方便一起管理,那么在win10系统中下怎么在Outlook中添加263邮箱呢?接下来小编教 ...

  4. 163 邮件 服务器 ssl,为什么用163的smtp服务时要关闭TLS才能发送邮件?

    def SendEmail(strinfo, title="测试邮件", recipients="xxxxxxxxx@qq.com"): "" ...

  5. 微软邮件服务器名称,邮箱服务器角色概述

    邮箱服务器角色概述 05/13/2016 本文内容 适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3 上一次修改主题: 2015-03-0 ...

  6. linux 验证邮箱账号,linux邮件服务器的身份验证(sasl)

    sasl SASL全称SimpleAuthenticationandSecurityLayer,是一种用来扩充C/S模式验证能力的机制.在Postfix可以利用SASL来判断用户是否有权使用转发服务, ...

  7. 手机怎么登陆群邮件服务器,139邮箱登陆登录入口 中国移动139手机邮箱注册图文教程...

    现在很多小伙伴都在用中国移动的139邮箱,手机号就是邮箱账号,方便又好记,通过短信或者手机上网等方式,可以随时收.发邮件;免费接收邮件到达提醒,不会担心错过重要邮件;每月话费账单准时投递到邮箱,消费情 ...

  8. 026、163邮箱验证

    一.添加邮箱后端逻辑 1. 添加邮箱接口设计和定义 1.请求方式 选项 方案 请求方法 PUT 请求地址 /emails/ 2.请求参数 参数名 类型 是否必传 说明 email string 是 邮 ...

  9. 搭建邮件服务器 提示554 DT:SPM 163

    javamail 搭建邮件服务器的时候,用163就是一个坑. 在我搭建完邮件服务器,并且做好本地测试的时候.我开始发送http请求,准备开始发邮件.参数设置都没有问题.但是就是报错 报554 DT : ...

  10. tmail邮箱服务器,邮件服务器(一)Sendmail服务器1

    1.1 简介 邮件服务是用户所需要的最重要的网络服务.Web的通信量很大,但邮件主要用于个人之间的通信,而人-人的通信是商务的基础.没有邮件服务的网络是不完整的网络.换句话说,如果不能给用户提供完整的 ...

最新文章

  1. COJ 1081 集训队分组
  2. 深入理解simhash原理
  3. Maven Assembly Plugin - 如何将Maven工程打成一个可执行jar包
  4. 10个必会的 PyCharm 技巧,附高清大图
  5. PHP使用Pear发送邮件-Windows环境
  6. 凸优化第四章凸优化问题 4.3 线性规划问题
  7. java package 打包_java打包的两种方式整理
  8. java解析返回报文_Java解析json报文实例解析
  9. DM 关键字、屏蔽关键字
  10. gym100818F-F - Irrational Roots
  11. 计算机操作系统学习笔记
  12. 什么是一对一电脑无人直播?
  13. 大数据基础篇~JavaSE第一章
  14. 事件数据 - EventData
  15. 家用电信光猫更换教程+设置路由模式
  16. 苹果xr十大隐藏功能_苹果手机有哪些隐藏小功能?【建议收藏】
  17. win10通过计算机名称共享打印机,WIN10怎么连接共享打印机到电脑上
  18. element ui textarea实现输入字数统计
  19. 计算字符串长度的五种方法
  20. php微信扫码支付pc端,PC端(电脑端)微信扫码支付和支付宝在线支付(ThinkPHP3)...

热门文章

  1. [转]win10 vs2010安装教程(超详细,附下载链接)
  2. 机器学习视频课程(超清完整11周)分享给大家!
  3. 如何使用组策略映射网络驱动器
  4. 在 Windows 10 中映射网络驱动器
  5. php发起预约申请,php版微信公众平台实现预约提交后发送email的方法
  6. 网络渗透就业学习路线
  7. 使用Go实现Socket服务端和客户端通信
  8. 花呗的24期利息计算器_花呗24期怎么算利息怎么算(花呗借600024期要还多少利息?)...
  9. 计算机组成原理-检错码、纠错码
  10. 实战-全局唯一邀请码功能实现