java实现发送邮件验证码
java实现发送邮件验证码
①、方法步骤
第一步我们先登录一个电子邮箱(qq邮箱为例)
在主页面的左上角有个设置按钮 进入设置
在设置下点击 账户
下拉找到 [POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务] 开启服务
将POP3/SMTP服务 和 IMAP/SMTP服务打开暂时记住这个授权码 用于你在第三方客户端的密码框里面输入16位授权码进行验证。(注意先存好)
导入依赖
<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>
- 示例
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实现发送邮件验证码相关推荐
- JAVA 实现发送邮件功能——邮箱验证码
JAVA 实现发送邮件功能--邮箱验证码 在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式. 首先 想要使用 Java 实现发送邮件 ...
- java案例----用户注册--发送邮件并激活/发送邮件验证码
java案例----用户注册-发送邮件并激活/发送邮件验证码 一.前期准备 1.准备两个邮箱账号(一个发邮件,一个收邮件) 1.1)登录需要发送邮件的QQ邮箱,找到设置项 1.2)然后在账户栏下,找到 ...
- Java发送邮箱验证码、session校验功能
本篇主要描述"发送邮箱验证码.session校验"相关前(htmljs)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2 ...
- 使用Java Email发送邮件
前言Email就是电子邮件.电子邮件的应用已经有几十年的历史了,我们熟悉的邮箱地址比如abc@example.com,邮件软件比如Outlook.网易闪电邮.Foxmail都是用来收发邮件的.当然,使 ...
- 邮箱注册(发送邮件验证码;QQ邮箱)
邮箱注册(发送邮件验证码:QQ邮箱) 先去QQ邮箱-->点击设置有POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务.开通会有授权码 复制粘贴代码就可以使用.根据指 ...
- Java程序发送邮件
之前上网有看到过别人总结的使用java程序发送邮件,于是自己下来练习,把自己学习的一些心得总结出来. 首先我们这里需要采用两个jar包: 需要的朋友可以自行上网去CSDN类似的网站上面找 顺便把自己测 ...
- java登录的 验证码_java登录验证码
一.创建web项目 二.生成验证码 创建VcodeObject.java,存储验证码与图片 package com.demo.vcode; import java.io.InputStream; pu ...
- java ssl发送邮件_通过SSL发送的Java邮件
java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...
- java 生成校验验证码_java 验证码生成与校验
java绘图相关类 验证码工具类 package dt2008.util; import javax.imageio.ImageIO; import javax.servlet.http.HttpSe ...
最新文章
- 成都网络推广带大家了解一个好的标题需遵循的原则有哪些?
- js实现txt/excel文件下载
- python判断文件是否存在、不存在则创建_python判断文件是否存在,不存在就创建一个的实例...
- C++:常用数据类型及常见操作
- vb mschart 坐标名称_最强干货来了:Grasshopper运算器名称总结(上篇)
- 如何解决AIX的文件系统故障
- Ant build.xml中的各种变量
- CF1365G Secure Password(构造,交互,二进制分组)
- Could not retrieve transaction isolation level from server
- Ambari--服务管理
- 图像检索:CEDD(Color and Edge Directivity Descriptor)算法
- 点击按钮返回上一个页面_零基础跟老陈一起学WordPress 《第四课》用WP半小时建一个商业网站...
- 某LINUX平台,管道open直接崩溃
- 中山大学2016年数学分析高等代数考研试题参考解答及其讲解
- String类的常用方法都有哪些?
- 红昭愿计算机音乐教程,红昭愿 - 音阙诗听 - 5SING中国原创音乐基地
- 无线网络经常掉线?默认网关不可用?试试这个办法
- 商用密码企业调研(必做) 20181314
- 【每日微信新闻早报简报】10月11日 星期五
- 专利检索及分析模拟登陆(python)