欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

本文實(shí)例為大家分享了springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能的具體代碼,供大家參考,具體內(nèi)容如下

成都創(chuàng)新互聯(lián)公司是專業(yè)的曲沃網(wǎng)站建設(shè)公司,曲沃接單;提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行曲沃網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

我這邊使用的QQ郵箱

1、首先創(chuàng)建maven項(xiàng)目,配置pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 
 <groupId>com.example</groupId>
 <artifactId>springbootdemo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>
 
 <name>springbootdemo</name>
 <description>Demo project for Spring Boot</description>
 
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.0.4.RELEASE</version>
 <relativePath/> <!-- lookup parent from repository -->
 </parent>
 
 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 <java.version>1.8</java.version>
 </properties>
 
 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.2</version>
 </dependency>
 <!--郵件發(fā)送核心包-->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-mail</artifactId>
 </dependency>
 <dependency>
 <groupId>commons-io</groupId>
 <artifactId>commons-io</artifactId>
 <version>2.4</version>
 </dependency>
 <dependency>
 <groupId>MySQL</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
 </dependency>
 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional> <!-- 這個需要為 true 熱部署才有效 -->
  </dependency>
 
 <!--mybatis分頁插件-->
 <dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>4.1.6</version>
 </dependency>
 
 
 </dependencies>
 
 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
 <resources>
 <resource>
 <directory>src/main/java</directory>
  <includes>
  <include>**/*.xml</include>
  </includes>
 </resource>
 </resources>
 </build>
 
</project>

2、配置springboot,我這里使用的是properties方式

#配置Mybatis別名和掃描包
mybatis.type-aliases-package=com.demo.bean
mybatis.mapper-locations=classpath:mapper/*.xml
 
#數(shù)據(jù)庫相關(guān)
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
 
#配置日志
logging.level.root=info
logging.level.com.demo.mapper=debug
 
#配置視圖前綴和后綴
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html
 
#郵件發(fā)送配置
spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.qq.com
spring.mail.username=你的郵箱
spring.mail.password=郵箱授權(quán)碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
 
#thymeleaf配置
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false

郵箱授權(quán)碼可以按以下方法獲取
打開QQ郵箱網(wǎng)頁→設(shè)置→賬戶→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)→開啟POP3/SMTP服務(wù),然后就能看到授權(quán)碼了

3、編寫mailService

${spring.mail.username}是在properties中配置的屬性,這里有一個方法,第一個是發(fā)送普通郵件,第二個是發(fā)送帶有附件的郵件

@Service("mailService")
public class MailService {
 @Value("${spring.mail.username}")
 private String from;
 @Autowired
 private JavaMailSender mailSender;
 
 Logger logger = LoggerFactory.getLogger(this.getClass());
 
 public void sendSimpleMail(String to,String title,String content){
  SimpleMailMessage message = new SimpleMailMessage();
  message.setFrom(from);
  message.setTo(to);
  message.setSubject(title);
  message.setText(content);
  mailSender.send(message);
  logger.info("郵件發(fā)送成功");
 }
 
 public void sendAttachmentsMail(String to, String title, String cotent, List<File> fileList){
  MimeMessage message = mailSender.createMimeMessage();
  try {
   MimeMessageHelper helper = new MimeMessageHelper(message,true);
   helper.setFrom(from);
   helper.setTo(to);
   helper.setSubject(title);
   helper.setText(cotent);
   String fileName = null;
   for (File file:fileList) {
    fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B");
    helper.addAttachment(fileName, file);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  mailSender.send(message);
  logger.info("郵件發(fā)送成功");
 }
}

4、編寫controller

@Controller
public class MailController {
 @Autowired
 private MailService mailService;
 
 @RequestMapping("getCheckCode")
 @ResponseBody
 public String getCheckCode(String email){
  String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
  String message = "您的注冊驗(yàn)證碼為:"+checkCode;
  try {
   mailService.sendSimpleMail(email, "注冊驗(yàn)證碼", message);
  }catch (Exception e){
   return "";
  }
  return checkCode;
 }
}

5、編寫頁面

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>注冊</title>
 <link rel="stylesheet" href="layui/css/layui.css" rel="external nofollow" >
 <script src="layui/layui.js"></script>
</head>
<body >
 <div >
  <div class="layui-main" >
   <h2 >請輸入注冊信息</h2>
   <form class="layui-form layui-form-pane">
    <div class="layui-form-item">
     <label class="layui-form-label">郵箱:</label>
     <div class="layui-input-block">
      <input id="email" type="email" name="username" class="layui-input" lay-verify="required"/>
     </div>
    </div>
    <div class="layui-form-item">
     <label class="layui-form-label">密碼:</label>
     <div class="layui-input-block">
      <input id="password" type="password" name="password" class="layui-input" lay-verify="required"/>
     </div>
    </div>
    <div class="layui-form-item">
     <label class="layui-form-label">郵箱驗(yàn)證碼:</label>
     <div class="layui-input-block">
      <input id="checkCode" type="text" name="checkCode" class="layui-input" lay-verify="required"/>
      <button id="sendCheckCode" type="button" class="layui-btn layui-btn-normal">獲取驗(yàn)證碼</button>
     </div>
    </div>
    <div class="layui-form-item">
     <div class="layui-input-block">
      <button class="layui-btn" lay-submit lay-filter="register">確認(rèn)</button>
     </div>
    </div>
   </form>
  </div>
 </div>
 <script>
  layui.use("form",function () {
   var form = layui.form;
   var $ = layui.$;
   
   form.on("submit(register)",function (data) {
    var inputCheckCode = $("#checkCode").val();
    if (inputCheckCode == checkCode){
     $.ajax({
      url:"/register",
      type:"POST",
      data:data.field,
      async:false,
      success:function (text) {
       if ("ok" == text){
        layer.alert("注冊成功",function () {
         window.location.href = "index.html";
        });
       }else{
        layer.alert("注冊失敗");
       }
      }
     });
    } else{
     layer.msg("驗(yàn)證碼輸入錯誤");
    }
    return false;
   });
 
   //驗(yàn)證碼
   var checkCode = "";
 
   $("#sendCheckCode").click(function () {
    var email = $("#email").val();
    if (email == null || email == ""){
     layer.msg("請輸入郵箱?。。?);
     return;
    }
    var index = layer.open({
     type:3,
     content:"郵件發(fā)送中..."
    });
 
    $.ajax({
     url:"/getCheckCode?email="+email,
     type:"get",
     success:function (text) {
      if (text != null && text != ""){
       layer.close(index);
       layer.msg("已發(fā)送");
       checkCode = text;
       countDown();
      } else{
       layer.alert("獲取失敗,請重新獲取")
      }
     }
    });
   });
 
   var maxTime = 60;
   function countDown(){
    if (maxTime == 0){
     checkCode = "";
     $("#sendCheckCode").removeClass("layui-btn-disabled");
     $("#sendCheckCode").removeAttr("disabled")
     $("#sendCheckCode").html("獲取驗(yàn)證碼");
     maxTime = 60;
    }else{
     $("#sendCheckCode").attr("disabled","disabled");
     $("#sendCheckCode").addClass("layui-btn-disabled");
     form.render();
     $("#sendCheckCode").html(maxTime+"秒后重新獲取");
     maxTime--;
     setTimeout(countDown,1000);
    }
   }
 
  });
 </script>
</body>
</html>

6、測試

springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

郵件發(fā)送

springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

發(fā)送成功

springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

收到郵件

springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能

60s禁止重發(fā)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享文章:springboot實(shí)現(xiàn)郵箱驗(yàn)證碼功能
鏈接URL:http://chinadenli.net/article40/jggjho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)企業(yè)建站、電子商務(wù)、網(wǎng)頁設(shè)計(jì)公司品牌網(wǎng)站制作、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
婷婷基地五月激情五月| 午夜福利直播在线视频| 夫妻激情视频一区二区三区| 97人妻精品一区二区三区免| 日本女优一色一伦一区二区三区 | 亚洲中文字幕视频在线播放| 精品一区二区三区乱码中文| 十八禁日本一区二区三区| 大尺度剧情国产在线视频| 真实偷拍一区二区免费视频| 婷婷亚洲综合五月天麻豆| 午夜国产精品福利在线观看| 美女被后入视频在线观看| 欧美日韩视频中文字幕| 亚洲av专区在线观看| 好吊色免费在线观看视频| 精品欧美日韩一二三区| 日本黄色美女日本黄色| 高清一区二区三区大伊香蕉| 一区二区在线激情视频| 夫妻性生活一级黄色录像| 国产不卡视频一区在线| 国产一区欧美午夜福利| 五月天丁香婷婷一区二区| 国产成人精品午夜福利av免费| 91在线爽的少妇嗷嗷叫| 欧美日本亚欧在线观看| 欧美日韩精品久久亚洲区熟妇人| 欧美胖熟妇一区二区三区| 亚洲最新中文字幕在线视频| 黄片在线免费看日韩欧美| 国产日产欧美精品视频| 真实国产乱子伦对白视频不卡| 亚洲伦片免费偷拍一区| 亚洲国产精品国自产拍社区| 中文字幕日韩欧美理伦片| 高清亚洲精品中文字幕乱码| 日韩欧美国产精品中文字幕| 亚洲国产色婷婷久久精品| 中文字幕乱码一区二区三区四区| 97精品人妻一区二区三区麻豆|