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

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

首先

想要使用 Java 实现发送邮件的功能就需要先去对应的邮箱开启 POP3/IMAP 或者 SMTP/IMAP 服务。
这里使用163邮箱来举例,附上163邮箱的POP3/SMTP/IMAP服务介绍

进入邮箱后点击设置,找到并点击 POP3/SMTP/IMAP

点开后开启 POP3/IMAP服务 或者 SMTP/IMAP服务 ,这里我全部开启了

开启后会出现一个弹窗,上面显示的是你个人的授权密码,这个密码一定要立刻保存!!!且不能泄露出去!有了这个授权密码就可以对这个邮箱进行第三方操作,如若发现邮箱出现未知操作后一定要尽快删除这个授权码

至此,邮箱方面的操作便结束了。

然后
在 Java 中添加如下代码
在 Maven 中添加如下两个依赖

<!--javaMail--><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.5.6</version></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.5.3</version></dependency>

接着添加对应的发送邮件工具类 MailUtils,标注的地方进行填写或更改即可:

package utils;import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;/*** 发邮件工具类*/
public final class MailUtils {private static final String USER = "xxxxxxxxx@.com"; // 发件人称号,同邮箱地址※private static final String PASSWORD = "xxxxxxxxx"; // 授权码,开启SMTP时显示※/**** @param to 收件人邮箱* @param text 邮件正文* @param title 标题*//* 发送验证信息的邮件 */public static boolean sendMail(String to, String text, String title){try {final Properties props = new Properties();props.put("mail.smtp.auth", "true");
//            注意发送邮件的方法中,发送给谁的,发送给对应的app,※
//            要改成对应的app。扣扣的改成qq的,网易的要改成网易的。※
//            props.put("mail.smtp.host", "smtp.qq.com");props.put("mail.smtp.host", "smtp.163.com");// 发件人的账号props.put("mail.user", USER);//发件人的密码props.put("mail.password", PASSWORD);// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName = props.getProperty("mail.user");String password = props.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};// 使用环境属性和授权信息,创建邮件会话Session mailSession = Session.getInstance(props, authenticator);// 创建邮件消息MimeMessage message = new MimeMessage(mailSession);// 设置发件人String username = props.getProperty("mail.user");InternetAddress form = new InternetAddress(username);message.setFrom(form);// 设置收件人InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体message.setContent(text, "text/html;charset=UTF-8");// 发送邮件Transport.send(message);return true;}catch (Exception e){e.printStackTrace();}return false;}public static void main(String[] args) throws Exception { // 做测试用MailUtils.sendMail("xxxxxx@qq.com","你好,这是一封测试邮件,无需回复。","测试邮件");//填写接收邮箱※System.out.println("发送成功");}}

至于验证码,这个可以再去看看别人的博客,挺简单的,我这个项目是使用UUID解决,就不再在这里赘述了。

JAVA 实现发送邮件功能——邮箱验证码相关推荐

  1. Java实现发送邮件功能

    目录 一.代码功能 二.功能实现 邮件实体 邮件参数配置 发送邮件 主函数 三.源码下载 四.商务合作 一.代码功能 Java实现发送邮件功能,使用mail包里面的函数进行实现此功能.话不多说,直接贴 ...

  2. 【邮箱验证码模板】java 整合redis 发送邮箱验证码模板

    完整代码地址 :https://gitee.com/alleniverrui/mail-send.git (有帮助的话帮忙点个start) 开启邮箱smtp 权限 以QQ邮箱为例( 将图中所示两个sm ...

  3. java注册界面发送邮箱验证码(无线程版)

    ​ 邮箱验证注册 本篇文章使用第三方jar包实现邮箱发送验证码来注册用户,该文章未采用线程如果多人访问注册注册页面发送邮件可能会导致服务器崩溃,建议采用线程发送邮件!!! 一.前期准备工作 1.发送验 ...

  4. java实现发送邮件功能(可以添加附件)

    记录一下在java中发送邮件的实现方式,下面这个工具类是根据在网上查阅的资料自己整理出来的. 类中只有两个方法: 1.第一个就是普通的发送文本内容邮件的方法. 2.第二个是能发送附件邮件的方法.如果还 ...

  5. java实现发送qq邮箱验证码

    1.登录qq邮箱,开启POP3/SMTP服务 路径:qq邮箱--->设置---->选择账户----> 打开 按照要求发送短信后得到授权码 得到授权码后要记得点击确定,页面拉到最下方点 ...

  6. java web 实现qq发送邮箱验证码

    java web 实现qq邮箱验证码发送 第一步: 打开qq邮箱 设置---->选择账户----> 打开 打开之后我们将会获得一个授权码 现在我们拿到授权码之后 我们就可以开始写代码了 1 ...

  7. spring boot 实现发送邮箱验证码

    首先设置一下发件人邮箱,以QQ邮箱为例: 找到帐户,开启POP3/SMTP服务 然后会提醒你怎么去实现,验证完后,会给你一个授权码,记住这个授权码,后端spring boot 会用到 下面回到IDEA ...

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

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

  9. java短信验证码功能发送的验证码如何校验_发送短信验证码和邮箱验证码—Java实现...

    短信验证码 短信验证码都是调用一些接口来进行短信的发送,短信验证码在登录.注册等操作中使用的最广泛,本文这一节演示如何使用Java制作一个简单的短信验证码登录. 我这里演示使用的是聚合数据的短信接口( ...

最新文章

  1. 记一次Sonar执行失败的修复
  2. 总结:被MySQL UTF8编码坑的惨痛教训...
  3. Hazelcast集群服务(2)
  4. Golang中的panic和recover(捕获异常)
  5. dos下编译运行java工程,并解决外部jar包依赖
  6. linux 文件系统覆盖目录,Linux内核裁减及根文件系统定制
  7. java更新数据库错误就回滚_Java 中对数据库操作时的 回滚
  8. 2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛
  9. KMP算法之NEXT数组代码原理分析 - 数据结构和算法38
  10. 【BZOJ3729】Gty的游戏,博弈+splay
  11. OpenCV for Android开发环境Win7平台搭建(转)
  12. mktime 夏令时
  13. DevOps: 一例高负载多并发服务器连接池满的异常排解过程
  14. dede后台验证码一直错误的处理方法
  15. 用excel制作项目管理甘特图
  16. msg1500说明书_MSG1500刷机笔记
  17. Commvault备份服务器硬件配置设计最佳实践
  18. keil c语言 延迟程序,Keil C51程序设计中几种精确延时方法
  19. python真有那么厉害?
  20. 广西省崇左市谷歌卫星地图下载

热门文章

  1. 关于Canal的过滤机制
  2. JavaScript选项卡/页签/Tab的实现
  3. java如何循环输出一个表格,Java编程for循环输出俄文字母表
  4. 深度分析拼多多的首场618战事:“猫拼狗“的快打旋风
  5. 基于树莓派4b(raspberry pi 4b)内核编译流程,交叉编译环境搭建,loadable kernel module (LKM)编译方法
  6. 关于pycharm找不到已经安装的模块问题的解决方案module ImportError
  7. 计算机网络的通信方式
  8. Go 让 Apache APISIX 如虎添翼
  9. 花仙里云课堂知识付费v1.2.25知识付费 教育 直播
  10. 微信小程序animation