發送短信驗證碼和郵箱驗證碼—Java實現


短信驗證碼web

  短信驗證碼都是調用一些接口來進行短信的發送,短信驗證碼在登陸、註冊等操做中使用的最普遍,本文這一節演示如何使用Java製做一個簡單的短信驗證碼登陸。服務器

  我這裏演示使用的是聚合數據的短信接口(並不是廣告),由於聚合數據的接口調用比較方便和簡單,因此首先得先去聚合數據裏申請一個短信接口API:jsp

1.png

2.png


申請時會須要你進行實名認證,若是你不想認證的話跳過認證也是能夠的。ide


申請完短信API進入如下界面後點擊「模板」:測試

3.png


  須要先申請一個短信模板,根據本身的需求定義這個模板內容(定義前先閱讀此頁面下方的模板規則說明):spa

4.png


提交審覈後,在此頁面的下方能夠看到模板列表和模板的審覈狀態:接口

5.png


而後點擊「個人數據」,再點擊短信API服務中的「接口」:隊列

6.png


接口的調用說明都在這個頁面裏,須要按照這裏的規則去調用這個API:it

7.png



  等短信模板申請下來後就可使用這個API了,如下演示如何使用Java來調用這個API,製做一個簡單的短信驗證碼登陸:驗證碼

首先是頁面的index.jsp代碼:

8.png


用於調用短信接口的類:

9.png


處理髮送驗證碼請求的Servlet:

10.png

11.png


最後是處理登陸業務的Servlet:

12.png

13.png

14.png


運行結果:

15.png


收到的驗證碼:

16.png


輸入驗證碼進行登陸:

17.png


控制檯打印內容:

18.png



郵箱驗證碼

  通常能使用郵箱註冊的帳戶,在進行登陸、註冊或忘記密碼等操做時,都能使用郵箱進行驗證,因此郵箱驗證碼也使用得比較普遍,不過相對於短信驗證碼來講,郵箱驗證碼使用的少一些,由於如今是我的都有手機號碼,可是不必定會有郵箱帳號。

  使用郵箱來發送驗證碼,不須要像短信驗證碼那樣調用短信服務API來發送驗證碼,可是須要有一個可以發送郵件的郵箱服務器或者使用第三方的郵箱,例如16三、12六、qq郵箱等。

  無論是郵箱服務器仍是第三方的郵箱須要開啓POP三、SMTP、IMAP服務,由於開啓了這些服務後才能被第三方調用這個郵箱進行發送郵件。由於本身搭建郵箱服務器比較麻煩,因此我這裏使用163的郵箱做爲演示。


1. 首先得去郵箱裏開啓服務,登陸後點擊設置能夠看到這些服務的選項:

19.png


2. 設置服務,第一次設置的話,會須要短信驗證,而後還會要求你設置一個密碼:

20.png

21.png


3. 進行短信驗證:

22.png


4. 設置密碼:

23.png


5. 完成:

24.png

這個設置的密碼也就是受權碼要記住,發送郵件的時候須要用到這個受權碼。


  而後咱們來使用Java編寫一個發送郵件的類,可是寫這個代碼以前你得先得到下圖中的jar包,須要使用這些第三方的jar包來實現郵件的發送:

25.png


得到jar包後,把這些jar包都導入到web工程下的lib目錄中:

26.png


  有了這些jar包後,就能夠開始編寫代碼了,咱們先寫一個簡單的類來測試一下可否成功發送郵件,代碼示例:

27.png


運行結果:

28.png

如圖,郵件能夠正常的發送,而且收件人也能收到。



關於郵件的驗證碼的問題:

有時候郵件會發送的比較慢,甚至會發送不出去。因此用戶在這種狀況下就須要進行等待,最經典的就是那個圓圈的圖標會一直在轉圈,爲了解決這種等待的問題,能夠將驗證碼的發送請求存放到一個隊列集合中,讓它在後臺進行發送,這樣的話用戶發送驗證碼時就不至於卡在當前頁面裏,示意圖:

29.png

相關文章
相關標籤/搜索