栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java邮件验证码的使用(全站最全)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java邮件验证码的使用(全站最全)

目录

大家都知道 有udp协议 tcp协议 SMTP协议 就是邮件协议

POP3与SMTP是什么

邮件发送过程详细分析

 邮箱发送原理

主要使用到的类:

Properties类:作用是创建Session对象,需要封装邮件传输使用的协议(mail.transport.protocol =

Session类:

MimeMessage(Message子类):

InternetAddress(Address子类):

编写代码思路

2、准备好mail配饰文件,mail.proerties

3、编写代码

总结:


qq邮箱发送验证码 前期准备:

需要开启qq邮箱的pop3/smtp功能

第一步:登录qq邮箱打开设置

 切换到账户选项

这个SMTP这里需要开启----开启之后会需要你验证信息

 这个意思就是你需要开启SMTP协议   

大家都知道 有udp协议 tcp协议 SMTP协议 就是邮件协议

 

POP3与SMTP是什么 POP3:(Post Offiffiffice Protocol 3),邮局协议的第三版本,规定了用户从个人计算机连接到Internet 的邮件服务器和下载电子邮件的协议。特点是接收邮件的协议。 SMTP:(Simple Mail Transfer Protocol),简单邮件传输协议。它是一组用于从源地址到目的地址传 输邮件的规范,通过它来控制邮件的中转方式,帮助每台计算机在发送或中转信件时找到下一个目的 地。特点是发送邮件的协议。

邮件发送过程详细分析

 邮箱发送原理

主要使用到的类:

Properties类:作用是创建Session对象,需要封装邮件传输使用的协议(mail.transport.protocol = smtp), 发件人的 SMTP 服务器地址 (mail.smtp.host = smtp.qq.com ), 传输的请求认证( mail.smtp.auth = true )

Session类: 创建:通过 Session 类的静态方法 public static Session getDefaultInstance(java.util.Properties props) (还有其他的几个方法,想了解查看 JavaEE 的 API 文档即可) 获取 Transport 对象: public Transport getTransport() 利用 Session 对象创建邮件对象: public MimeMessage(Session session) ( MimeMessage 的构造 器) public void setDebug(boolean debug) 查看 debug 信息

MimeMessage(Message子类): 创建:上面已说,利用 Session 对象创建 设置发件人: public void setFrom(Address address) 设置收件人: public void setRecipient(Message.RecipientType type, Address address) 设置邮件主题: public void setSubject(String subject, String charset) 设置邮件正文: public void setContent(Object o, String type) 设置发送时间: public void setSentDate(java.util.Date d) 设置保存: public void saveChanges() (当然 API 里面还封装了邮件的正文容器,但本文章不详细说明了。)

InternetAddress(Address子类): public InternetAddress(String address) 创建对象 public InternetAddress(String address, String personal, String charset) 创建对象

 

接下来就是代码,大家认真看下-需要源码可以dd我的后台 

编写代码思路
public class SendEmailUtil {
public static void main(String[] args) {
send("1293158456@qq.com","12111");
}
public static void send(String to,String code){
try {
Properties props=new Properties();
//设置邮箱的参数
//1、设置主机
// props.setProperty("mail.host","smtp.163.com");
props.setProperty("mail.smtp.host","smtp.qq.com");
// props.setProperty("mail.host","smtp.163.com");
//2、设置验证
props.setProperty("mail.smtp.auth","true");
//3、邮箱协议
props.setProperty("mail.transport.protocol","smtp");
Authenticator authenticator=new Authenticator() {
//实现验证的方法
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//不是邮箱的账号和密码 【邮箱服务器的或者授权码】
return new PasswordAuthentication("************@qq.com","授权
码");
}
};
Session session = Session.getInstance(props, authenticator);
//设置debug
session.setDebug(true);
//创建邮件
MimeMessage message=new MimeMessage(session);
//设置发送人
message.setFrom(new InternetAddress("********@qq.com"));
//设置接收人 to表示发送 Cc 表示抄送 bcc 表示暗送
message.setRecipients(MimeMessage.RecipientType.TO,to);
message.setRecipients(MimeMessage.RecipientType.CC,to);
//message.setRecipients(RecipientType.BCC,"2078596261@qq.com");
//设置邮件的主题
message.setSubject("来自XX网站的激活邮件");
//设置正文内容
message.setContent("恭喜XX成为网站会员请点击链
接进行激活","text/html;charset=UTF-8");//发送
Transport.send(message);
System.out.println("邮件发送成功!");
} catch (Exception e) {
throw new RuntimeException(e);
}
}

2、准备好mail配饰文件,mail.proerties

mail.smtp.host=smtp.qq.com # 设置传输协议 mail.transport.protocol=smtp # 设置传输请求认知 mail.smtp.auth=true

3、编写代码
1、使用静态代码块加载配置文件properties文件
		2、通过加载到的properties配置文件获取到session对象。
		3、通过session创建邮件对象
		4、设置邮件对象的信息
		设置发件人
		设置收件人
		设置邮件主题
		设置邮件内容
		设置发送时间
		并且保存以上所有更改
		5、创建Transport对象
		6、取连接到邮件服务器
		transport.connect("********@qq.com" , "授权码");
		7、发送消息
		8、关闭连接
		public class TestMail {
		// 创建properties对象
		static Properties pro=new Properties();
		// 通过静态代码块加载配置文件
		static {
		InputStream inputStream =
		TestMail.class.getClassLoader().getResourceAsStream("mail.properties");
		// Properties pro=new Properties();
		try {
		pro.load(inputStream);
		} catch (IOException e) {
		e.printStackTrace();
		}
		}public static void main(String[] args) {
		sendMail("验证码","商城验证码","525393623@qq.com");
		}
		// 编写方法发送邮件
		
		public static boolean sendMail(String subject,String content,String to){
		//通过配置文件获取Session对象
		Session session = Session.getDefaultInstance(pro);
		// 设置日志输出
		session.setDebug(true);
		//创建邮件对象
		MimeMessage message = new MimeMessage(session);
		try {
		//设置发件人
		message.setFrom(new InternetAddress("1293158456@qq.com"));
		//设置收件人
		message.setRecipient(Message.RecipientType.TO, new
		InternetAddress(to));
		//设置邮件主题
		message.setSubject(subject);
		//设置内容
		message.setContent(content, "text/html;charset=UTF-8");
		//设置发送时间
		message.setSentDate(new Date());
		//保存改变
		message.saveChanges();
		//创建Transport对象
		Transport transport = session.getTransport();
		//获取连接到邮件服务器
		transport.connect("发件人邮箱@qq.com" , "******授权码******");
		//发送信息
		transport.sendMessage(message, message.getAllRecipients());
		//关闭连接
		transport.close();
		} catch (MessagingException e) {
		e.printStackTrace();
		}
		return true;
		}
		

总结:

没有解决不了的技术,只有你找不到的博主,谢谢你的关注,希望能帮助到你

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/683497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号