1. 程式人生 > >發送短信驗證碼和郵箱驗證碼—Java實現

發送短信驗證碼和郵箱驗證碼—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包後,就可以開始編寫代碼了,我們先寫一個簡單的類來測試一下能否成功發送郵件,代碼示例:

技術分享圖片


運行結果:

技術分享圖片

如圖,郵件可以正常的發送,並且收件人也能收到。



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

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

技術分享圖片









本文出自 “zero” 博客,請務必保留此出處http://zero01.blog.51cto.com/12831981/1983738

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