java实现发送邮件验证码

①、方法步骤

  1. 第一步我们先登录一个电子邮箱(qq邮箱为例)

  2. 在主页面的左上角有个设置按钮 进入设置

  3. 在设置下点击 账户

  4. 下拉找到 [POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务] 开启服务
    将POP3/SMTP服务 和 IMAP/SMTP服务打开

  5. 暂时记住这个授权码 用于你在第三方客户端的密码框里面输入16位授权码进行验证。(注意先存好)

  6. 导入依赖

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>
  1. 示例
import cn.itrip.beans.dto.Dto;
import cn.itrip.common.DtoUtil;
import org.springframework.stereotype.Service;import javax.mail.*;
import javax.mail.internet.*;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;@Service
public class SendMailServiceImpl implements SendMailService{/*** 发送邮件(参数自己根据自己的需求来修改,发送短信验证码可以直接套用这个模板)** @param from_email 发送人的邮箱* @param pwd        发送人的授权码* @param recevices  接收人的邮箱* @param code       验证码* @param name       收件人的姓名* @return*/@Overridepublic String sendQQEmail(String from_email, String pwd, String recevices, String code, String name)throws Exception {Properties props = new Properties();props.setProperty("mail.transport.protocol", "smtp");     //使用smpt的邮件传输协议props.setProperty("mail.smtp.host", "smtp.qq.com");       //主机地址props.setProperty("mail.smtp.auth", "true");      //授权通过Session session = Session.getInstance(props);     //通过我们的这些配置,得到一个会话程序try {MimeMessage message = new MimeMessage(session);message.setFrom(new InternetAddress(from_email));     //设置发件人message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(recevices,"用户","utf-8"));      //设置收件人message.setSubject("演示发邮件验证码网","utf-8");      //设置主题message.setSentDate(new Date());SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str = "<!DOCTYPE html><html><head><meta charset='UTF-8'></head><body><p style='font-size: 20px;font-weight:bold;'>尊敬的:"+name+",您好!</p>"+ "<p style='text-indent:2em; font-size: 20px;'>欢迎注册xxx网,您本次的注册码是 "+ "<span style='font-size:30px;font-weight:bold;color:red'>" + code + "</span>,1分钟之内有效,请尽快使用!</p>"+ "<p style='text-align:right; padding-right: 20px;'"+ "<a href='http://www.hyycinfo.com' style='font-size: 18px'>xxxx有限公司</a></p>"+ "<span style='font-size: 18px; float:right; margin-right: 60px;'>" + sdf.format(new Date()) + "</span></body></html>";Multipart mul=new MimeMultipart();  //新建一个MimeMultipart对象来存放多个BodyPart对象BodyPart mdp=new MimeBodyPart();  //新建一个存放信件内容的BodyPart对象mdp.setContent(str, "text/html;charset=utf-8");mul.addBodyPart(mdp);  //将含有信件内容的BodyPart加入到MimeMultipart对象中message.setContent(mul); //把mul作为消息内容message.saveChanges();//创建一个传输对象Transport transport=session.getTransport("smtp");//建立与服务器的链接  465端口是 SSL传输transport.connect("smtp.qq.com", 587, from_email, pwd);//发送邮件transport.sendMessage(message,message.getAllRecipients());//关闭邮件传输transport.close();} catch (AddressException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}return "注册成功";}

8. 注意
授权码一定要是和发送邮箱对的上,否则会报javax.mail.AuthenticationFailedException异常。

java实现发送邮件验证码相关推荐

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

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

  2. java案例----用户注册--发送邮件并激活/发送邮件验证码

    java案例----用户注册-发送邮件并激活/发送邮件验证码 一.前期准备 1.准备两个邮箱账号(一个发邮件,一个收邮件) 1.1)登录需要发送邮件的QQ邮箱,找到设置项 1.2)然后在账户栏下,找到 ...

  3. Java发送邮箱验证码、session校验功能

    本篇主要描述"发送邮箱验证码.session校验"相关前(htmljs)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2 ...

  4. 使用Java Email发送邮件

    前言Email就是电子邮件.电子邮件的应用已经有几十年的历史了,我们熟悉的邮箱地址比如abc@example.com,邮件软件比如Outlook.网易闪电邮.Foxmail都是用来收发邮件的.当然,使 ...

  5. 邮箱注册(发送邮件验证码;QQ邮箱)

    邮箱注册(发送邮件验证码:QQ邮箱) 先去QQ邮箱-->点击设置有POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务.开通会有授权码 复制粘贴代码就可以使用.根据指 ...

  6. Java程序发送邮件

    之前上网有看到过别人总结的使用java程序发送邮件,于是自己下来练习,把自己学习的一些心得总结出来. 首先我们这里需要采用两个jar包: 需要的朋友可以自行上网去CSDN类似的网站上面找 顺便把自己测 ...

  7. java登录的 验证码_java登录验证码

    一.创建web项目 二.生成验证码 创建VcodeObject.java,存储验证码与图片 package com.demo.vcode; import java.io.InputStream; pu ...

  8. java ssl发送邮件_通过SSL发送的Java邮件

    java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...

  9. java 生成校验验证码_java 验证码生成与校验

    java绘图相关类 验证码工具类 package dt2008.util; import javax.imageio.ImageIO; import javax.servlet.http.HttpSe ...

最新文章

  1. 成都网络推广带大家了解一个好的标题需遵循的原则有哪些?
  2. js实现txt/excel文件下载
  3. python判断文件是否存在、不存在则创建_python判断文件是否存在,不存在就创建一个的实例...
  4. C++:常用数据类型及常见操作
  5. vb mschart 坐标名称_最强干货来了:Grasshopper运算器名称总结(上篇)
  6. 如何解决AIX的文件系统故障
  7. Ant build.xml中的各种变量
  8. CF1365G Secure Password(构造,交互,二进制分组)
  9. Could not retrieve transaction isolation level from server
  10. Ambari--服务管理
  11. 图像检索:CEDD(Color and Edge Directivity Descriptor)算法
  12. 点击按钮返回上一个页面_零基础跟老陈一起学WordPress 《第四课》用WP半小时建一个商业网站...
  13. 某LINUX平台,管道open直接崩溃
  14. 中山大学2016年数学分析高等代数考研试题参考解答及其讲解
  15. String类的常用方法都有哪些?
  16. 红昭愿计算机音乐教程,红昭愿 - 音阙诗听 - 5SING中国原创音乐基地
  17. 无线网络经常掉线?默认网关不可用?试试这个办法
  18. 商用密码企业调研(必做) 20181314
  19. 【每日微信新闻早报简报】10月11日 星期五
  20. 专利检索及分析模拟登陆(python)

热门文章

  1. Unity 获取Android版本号和其他手机信息
  2. IDA*算法解十六宫格拼图问题
  3. 使用Google colab进行机器学习项目开发
  4. Parenthese sequence -模拟
  5. js拼接的字符串与变量
  6. 安装VMware15提示重启电脑,重启后又还是提示重启电脑
  7. 做发动机性能测试的软件,发动机性能的测试方法
  8. VMware虚拟机启动报错,无法执行64位操作(Win10 BIOS设置VT-x可用)
  9. Linux VS Windows,值得一读,必有收获!——下
  10. 超多超美多的图片素材网站,还能在线编辑,觉对满满的干货!