实战总结:邮箱发送验证码

article/2025/11/9 5:50:07

java邮箱发送验证码

目前项目中需要同时支持短信和邮箱验证,短信用的是腾讯云就不多说了,在此分享一下邮箱验证码发送。
首先,作为发送邮箱,需要开启POP3/SMTP/IMAP,登录邮箱–设置–账户–开启POP3/SMTP/IMAP,开启时可能会有短信验证,开启后显示验证码之类的一串英文,复制保存起来,后面要用
在这里插入图片描述
开启之后就可以作为发送邮箱,发验证码给用户了,代码如下
pom包引入:

<!--邮箱发送-->
<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version>
</dependency>

邮箱发送工具类:

package com.es.biz.common.utils;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;/*** 邮箱发送工具类*/
public class MailUtils {public static void main(String[] args) {sendMail("邮件接收者");}/*** 发送验证码** @param receiveMail* @throws Exception*/public static void sendMail(String receiveMail) {Properties prop = new Properties();// 开启debug调试,以便在控制台查看prop.setProperty("mail.debug", "true");// 设置邮件服务器主机名prop.setProperty("mail.host", "smtp.163.com");// 发送服务器需要身份验证prop.setProperty("mail.smtp.auth", "true");// 发送邮件协议名称prop.setProperty("mail.transport.protocol", "smtp");// 开启SSL加密,否则会失败try {MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);prop.put("mail.smtp.ssl.enable", "true");prop.put("mail.smtp.ssl.socketFactory", sf);// 创建sessionSession session = Session.getInstance(prop);// 通过session得到transport对象Transport ts = session.getTransport();// 连接邮件服务器:邮箱类型,帐号,POP3/SMTP协议授权码 163使用:smtp.163.com,qq使用:smtp.qq.comts.connect("smtp.163.com", "邮件发出者", "上面保存的验证码(一串英文)");// 创建邮件Message message = createSimpleMail(session, receiveMail);// 发送邮件ts.sendMessage(message, message.getAllRecipients());ts.close();} catch (Exception e) {e.printStackTrace();}}/*** @Method: createSimpleMail* @Description: 创建一封只包含文本的邮件*/public static MimeMessage createSimpleMail(Session session, String receiveMail) throws Exception {//  获取6位随机验证码(英文)String[] letters = new String[]{"q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m","A", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M","0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < 6; i++) {stringBuilder.append(letters[(int) Math.floor(Math.random() * letters.length)]);}//获取6位随机验证码(中文),根据项目需要选择中英文String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);// 创建邮件对象MimeMessage message = new MimeMessage(session);// 指明邮件的发件人message.setFrom(new InternetAddress("邮件发出者"));// 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiveMail));// 邮件的标题message.setSubject("验证码");// 邮件的文本内容message.setContent("您的验证码:" + verifyCode + ",如非本人操作,请忽略!请勿回复此邮箱", "text/html;charset=UTF-8");// 返回创建好的邮件对象return message;}
}

http://chatgpt.dhexx.cn/article/lymFK8jj.shtml

相关文章

SpringBoot整合邮箱发送验证码

1、以QQ邮箱为例&#xff0c;点开设置开启POP3/SMTP服务 2、创建一个springboot项目 1&#xff09;引入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependen…

Vue3发送验证码-防止页面刷新-发送验证码状态改变

效果: 1.页面DOM <div v-show"state.sendAuthCode" click"getCode">发送验证码</div> <div v-show"!state.sendAuthCode" ><span class"auth_text_blue">{{state.second}} </span>s</div>2. 业务…

C#实现手机发送验证码

目录 具体实现——封装一个类里&#xff0c;U层直接调用 配置文件的内容如下 验证手机号的正则表达式 首先先需要注册第三方网站&#xff0c;给大家推荐一个网站互亿无线&#xff0c;注册了之后每个用户可以免费发送50条短信。 下面以C#实现手机发送验证码为例。基本思路是本地…

uniapp 发送验证码倒计时

实现原理&#xff0c;点击发送验证码按钮&#xff0c;开始倒计时效果 准备工作 &#xff1a;在data中定义变量 ​​​​​​​ 点击事件 let timerId setInterval(() > {this.countDown--;this.sendText this.countDown "秒后重试";if (this.countDown < 0)…

html给手机号发送验证码,js如何实现手机发送验证码功能

js如何实现手机发送验证码功能 发布时间:2021-06-21 12:24:46 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 效果图: 代码如下:html&g…

Python发送验证码短信

Python发送验证码短信 前提条件相关介绍实验环境发送验证码短信账户注册查看用户名查看密码主要步骤代码实现输出结果 前提条件 熟悉Python基本语法 相关介绍 Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被…

html如何发送验证码到手机,页面效果,给手机发送验证码

html>定时发送验证码 var wait 5; function send(o) { if(wait5){ //向服务器发送请求&#xff0c;给手机发送验证码 // $.post("/simple/user/sendCode/mobile", // { // "mobile" : "${user.mobile}", // "number" : 2 // }, …

实现发送验证码功能

// 需求一&#xff1a;发送验证码// 用户点击之后&#xff0c;显示05秒后重新获取// 时间到了&#xff0c;自动改为重新获取let code document.querySelector(.code)code.addEventListener(click, function () {this.innerHTML 05秒后重新获取let mark 5let time setInterva…

发送验证码倒计时

点击发送验证码按钮的时候 会调用ajax请求发送验证码 但是 如果没有设置倒计时 如果一直重复点击按钮的话 会一直请求发送验证码 所以我们要设置一个验证码倒计时 <input id"sendCodeId" type"button" class"btn btn-danger" click"sen…

微信小程序发送验证码

记录一下&#xff0c;小程序发送验证码的小案例。废话不多说&#xff0c;直接撸代码。。。 1、效果图如下 wxml: <view classheader> <input typenumber placeholder请输入手机号 bindinputmInput></input> </view> <view classnav> <v…

Javascript发送验证码

一、请求原理 由于现在网站的都有手机登陆或注册&#xff0c;向制定地址发送一个post活get请求&#xff0c;那么我们利用这一思路&#xff0c;就可以在本地上利用Ajax来模拟网站的登陆注册操作&#xff0c;从而实现向发送验证码。 二、获取第三方网站验证码接口 随便找一个带验…

简析发送手机验证码原理

文章目录 发放手机验证码手机验证码校验小结 在一般互联网网站&#xff08;如淘宝、京东等&#xff09;注册账号或者找回密码时通常让用户进行手机号码进行 发送验证码验证&#xff0c;这种方式能有效的保证帐号安全&#xff0c;下面来解析一下它的原理。 整体流程如下图如示&…

App接口测试总结

使用工具 Fiddler、Jmeter 测试步骤&#xff1a; 1. 确认接口 从开发人员那里获取接口文档&#xff0c;接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。 如果当前项目没有接口文档&#xff0c;则可以使用fiddler对APP进行抓包确认…

Xilinx DDR3 —— MIG IP核的原理(APP接口)

DDR3 SDRAM&#xff08;Double-Data-Rate Three Synchronous Dynamic Random Access Memory&#xff09;是 DDR SDRAM的第三代产品&#xff0c;DDR SDRAM 的最大特点是双沿触发&#xff0c;即在时钟的上升沿和下降沿都能进行数据采集和发送&#xff0c;同样的工作时钟&#xff…

APP接口设计规范

APP接口设计规范 效率安全版本兼容性面向对象设计数据格式Json服务端的异常处理https协议 1.效率 APP对服务器端要求是比较严格的&#xff0c;在移动端有限的带宽条件下&#xff0c;要求接口响应速度要快&#xff0c;所有在开发过程中尽量选择效率高的框架&#xff0c;对数据…

TP6+JWT开发APP接口

1. 开发环境 PHP框架: ThinkPHP6操作系统: MacOsWeb服务器: Nginx 2. APP接口 2.1. 简介 客户端与服务端进行数据交互的通道, 大部分APP接口都是通过HTTP协议通信的 2.2. HTTP通信的三要素 URL 通信地址Method 通信方式(GET|POST|PUT|DELETE)Params 通信的内容 2.3 APP接…

快速开发一个混合APP(Hybrid APP)

混合开发APP&#xff08;Hybrid APP&#xff09;简单说就是将原生功能封装成JS接口&#xff0c;前端通过调用接口实现功能。前端使用html来开发APP&#xff0c;可以实现自动更新&#xff0c;一套代码同时生成Android和iOS两端安装包&#xff0c;开发速度快&#xff0c;用户体验…

Hybrid App开发 四大主流平台

Hybrid App在过去的两年中已经成为移动界的核心话题&#xff0c;但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢&#xff1f;是选择学习原生开发&#xff0c;研究Java、 Object-C、C#等语言&#xff0c;还是选择继续使用网页开发&#xff0c;容忍HTML5功能的局限性…

whatsapp协议api接口

测试demo&#xff1a;http://39.109.122.117:8081/login Whatsappapi 一、登录注册 登录 发送验证码 效验短信验证码 查询是否封号 获取版本号 查询是否封号&#xff08;商业版&#xff09; 发送验证码&#xff08;商业版&#xff09; 效验短信验证码&#xff08;商业…

第一次做APP接口开发过程总结

关于平湖人社APP后台开发总结APP后台接口开发我总结出以下几个部分: 需求分析与整理分析业务需求涉及的模块功能与数据库关联表接口开发文档大致编写并提交产品与APP开发人员 1.主要是webservise 地址:http://XXXX/services/SbcxWebservice?wsdl2.接口函数统一为 sbp_sbcx_XXX…