发送短信验证码和邮箱验证码—Java实现

短信验证码

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

我这里演示使用的是聚合数据的短信接口(并非广告),因为聚合数据的接口调用比较方便和简单,所以首先得先去聚合数据里申请一个短信接口API:

申请时会需要你进行实名认证,如果你不想认证的话跳过认证也是可以的。

申请完短信API进入以下界面后点击“模板”:

需要先申请一个短信模板,根据自己的需求定义这个模板内容(定义前先阅读此页面下方的模板规则说明):

提交审核后,在此页面的下方可以看到模板列表和模板的审核状态:

然后点击“我的数据”,再点击短信API服务中的“接口”:

接口的调用说明都在这个页面里,需要按照这里的规则去调用这个API:

等短信模板申请下来后就可以使用这个API了,以下演示如何使用Java来调用这个API,制作一个简单的短信验证码登录:

首先是页面的index.jsp代码:

用于调用短信接口的类:

处理发送验证码请求的Servlet:

最后是处理登录业务的Servlet:

运行结果:

收到的验证码:

输入验证码进行登录:

控制台打印内容:

邮箱验证码

一般能使用邮箱注册的账户,在进行登录、注册或忘记密码等操作时,都能使用邮箱进行验证,所以邮箱验证码也使用得比较广泛,不过相对于短信验证码来说,邮箱验证码使用的少一些,因为现在是个人都有手机号码,但是不一定会有邮箱账号。

使用邮箱来发送验证码,不需要像短信验证码那样调用短信服务API来发送验证码,但是需要有一个能够发送邮件的邮箱服务器或者使用第三方的邮箱,例如163、126、qq邮箱等。

不管是邮箱服务器还是第三方的邮箱需要开启POP3、SMTP、IMAP服务,因为开启了这些服务后才能被第三方调用这个邮箱进行发送邮件。因为自己搭建邮箱服务器比较麻烦,所以我这里使用163的邮箱作为演示。

1. 首先得去邮箱里开启服务,登录后点击设置可以看到这些服务的选项:

2. 设置服务,第一次设置的话,会需要短信验证,然后还会要求你设置一个密码:

3. 进行短信验证:

4. 设置密码:

5. 完成:

这个设置的密码也就是授权码要记住,发送邮件的时候需要用到这个授权码。

然后我们来使用Java编写一个发送邮件的类,但是写这个代码之前你得先获得下图中的jar包,需要使用这些第三方的jar包来实现邮件的发送:

获得jar包后,把这些jar包都导入到web工程下的lib目录中:

有了这些jar包后,就可以开始编写代码了,我们先写一个简单的类来测试一下能否成功发送邮件,代码示例:

运行结果:

如图,邮件可以正常的发送,并且收件人也能收到。

关于邮件的验证码的问题:

有时候邮件会发送的比较慢,甚至会发送不出去。所以用户在这种情况下就需要进行等待,最经典的就是那个圆圈的图标会一直在转圈,为了解决这种等待的问题,可以将验证码的发送请求存放到一个队列集合中,让它在后台进行发送,这样的话用户发送验证码时就不至于卡在当前页面里,示意图:

时间: 2024-08-07 20:12:07

发送短信验证码和邮箱验证码—Java实现的相关文章

JAVA利用第三方平台发送短信验证码。

前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

Java实现发送短信验证验证码功能

这几天老大让我弄一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可).具体看代码: 使用HttpClient的时候需要在项目中引入: commons-httpclient-3.1.jar 这个jar包, 项目结构: 1.创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法 /** * 文件说明 * @De

阿里云短信服务发送短信验证码(JAVA开发此功能)

开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官方开发文档了解详情,文档中写的也是很详细了... https://help.aliyun.com/product/44282.html 代码编写之前需要准备几个东西 1,aliyun-java-sdk-core.jar ,  aliyun-java-sdk-dysmsapi.jar  这2个jar包

Android之发送短信和接收验证码

最近项目需求需要发送短信和接收验证码并将验证码显示在输入框中 以下是我的记录 前提---权限 <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <

C# Ajax 手机发送短信验证码 校验验证码 菜鸟级别实现方法

1.Ajax请求处理页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.SessionState; using System.Web.Services; namespace Web.User.Ajax { /// <summary> /// SendCheckcode 的摘要说明 /// </summary> [WebSer

android发送短信验证码并自动获取验证码填充文本框

android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com), 两分钟申请测试账号,赠送了100条测试短信. android使用java的jar包即可开发 jar下载: http://smsow.zhenzikj.com/doc/sdk.html API文档:http://smsow.zhenzikj.com/doc/java_sdk_doc.html 使用

asp发送短信验证码 pst方式

<script language="jscript" runat="server">  Array.prototype.get = function(x) { return this[x]; };  function parseJSON(strJSON) { return eval("(" + strJSON + ")"); }  </script><%if userid<>"

发送短信验证码

//发送短信 $("#btnSendcode").click(function () { var $this = $(this); //检查是否输入手机号码 if ($("#txtMobile").val() == "") { $.dialog.alert("对不起,请先输入手机号码!", function () { $("#txtMobile").focus(); }); return false; }

程序君带你畅聊发送短信验证码

现在不管是网站,还是app等互联网和移动互联网产品,绝大部分注册都是直接用手机号注册登录的,方式就是给手机发送短信验证码,然后把验证码填入,后台程序去匹配判断用户填入的验证码和发送的是否一致. 我最近做的好几个项目都用到了发送短信验证码的这个第三方接口,其实这个发送验证码的原理很简单,实现也很简单. 如下三个图,是我做的其中一个项目的相关效果截图: 我用的比较多的第三方短信接口是容联-云通讯的(http://www.yuntongxun.com/),它的API挺强大的,也挺稳定的,使用也不难,有

超实用的JavaScript代码段 Item4 --发送短信验证码

发送短信验证码 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”.“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”.在倒计时期间按钮为禁用状态 . 第一步.获取按钮.绑定事件.设置定时器变量和计时变量 第二步.添加定时器,每隔1秒钟计时减 1,直至当计时小于等于 0 时清除定时器,按钮恢复为“发送验证码”,否则显示为“X秒后重试” <!doctype html> <html lang="en"> <head> <met