使用 Java Mail 实现注册时邮箱激活验证功能
生活随笔
收集整理的這篇文章主要介紹了
使用 Java Mail 实现注册时邮箱激活验证功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近在做畢設(shè)中實現(xiàn)注冊功能時使用到了郵箱激活驗證,在此總結(jié)下。
簡介
JavaMail 是提供給開發(fā)者處理電子郵件相關(guān)的編程接口,它是 SUN 發(fā)布的用來處理 email 的 API ,它可以方便地執(zhí)行一些常用的郵件傳輸,我們可以基于 JavaMail 開發(fā)出類似于 Microsoft Outlook 的應(yīng)用程序基本術(shù)語
(1)電子郵箱
- 電子郵箱(E-mail 地址)需要在郵件服務(wù)器上申請,確切地說,電子郵箱其實就是用戶在郵件服務(wù)器上申請的一個賬戶。
- 用戶在郵件服務(wù)器上申請了一個賬戶后,郵件服務(wù)器就會為這個賬戶分配一定的空間,用戶從而可以使用這個賬戶以及空間發(fā)送電子郵件和保存別人發(fā)送過來的電子郵件
(2)郵箱服務(wù)器
- 要在 Internet 上提供電子郵件功能,必須有專門的電子郵件服務(wù)器,例如現(xiàn)在網(wǎng)絡(luò)上有很多提供郵件服務(wù)的廠商:新浪、搜狐、網(wǎng)易等等他們都有自己的郵件服務(wù)器
- 這些服務(wù)器類似于現(xiàn)實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中
(3)SMTP 協(xié)議
- SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式
- SMTP 協(xié)議屬于 TCP/IP 協(xié)議簇,它幫助每臺計算機在發(fā)送或中轉(zhuǎn)信件時找到下一個目的地
- SMTP 服務(wù)器則是遵循 SMTP 協(xié)議的發(fā)送郵件服務(wù)器,用來發(fā)送或中轉(zhuǎn)發(fā)出的電子郵件
- 通常把處理用戶 SMTP 請求(郵件發(fā)送請求)的郵件服務(wù)器稱之為 SMTP 服務(wù)器
(4)POP3 協(xié)議
- POP3,全名為 “Post Office Protocol - Version 3”,即“郵局協(xié)議版本3”
- 本協(xié)議主要用于支持使用客戶端遠程管理在服務(wù)器上的電子郵件
- POP 協(xié)議支持“離線”郵件處理,其具體過程是:郵件發(fā)送到服務(wù)器上,電子郵件客戶端調(diào)用客戶程序以連接服務(wù)器,并下載所有來閱讀的電子郵件,這種離線訪問模式是一種存儲轉(zhuǎn)發(fā)服務(wù),將郵件從郵件服務(wù)器端送到個人終端機器上,一般是 PC 機或 MAC。一旦郵件發(fā)送到 PC 機或 MAC 上。郵件服務(wù)器上的郵件將會被刪除,但目前的 POP 郵件服務(wù)器大都可以“只下載郵件,服務(wù)器并不刪除”,也就是改進的 POP3 協(xié)議
- 同樣,用戶若想從郵件服務(wù)器管理的電子郵箱中接收一封電子郵件的話,他連上郵件服務(wù)器后,也需要遵循一定的通訊格式,POP3 協(xié)議用于定義這種通訊格式
- 因而,通常我們也把處理用戶 POP3 請求(郵件接收請求)的郵件服務(wù)器稱之為 POP3 服務(wù)器
郵件收發(fā)過程
郵件發(fā)送代碼
public class MailUtils {/*** 發(fā)送郵件的方法* @param to : 發(fā)送對象* @param code : 郵件的激活碼* @throws MessagingException * @throws AddressException */public static void sendMail(String to,String code) throws AddressException, MessagingException {// 1.創(chuàng)建連接對象,連接到郵箱服務(wù)器Properties props = new Properties();props.setProperty("mail.smtp.host", "smtp.163.com");// 設(shè)置郵件服務(wù)器 這里使用 163 郵箱props.setProperty("mail.smtp.auth", "true");// 打開認證Session session = Session.getInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("/發(fā)件人郵箱地址/","/密碼/");}});// 2.創(chuàng)建郵件對象Message message = new MimeMessage(session);// 2.1設(shè)置發(fā)件人message.setFrom(new InternetAddress("/發(fā)件人郵箱地址/"));// 2.2設(shè)置接收人message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));// 2.3設(shè)置郵件主題message.setSubject("賬號激活");// 2.4設(shè)置郵件內(nèi)容String content = "<html><head></head><body><h1>這是一封激活郵件,激活請點擊以下鏈接</h1>"+"<h3><a href='http://localhost:8080/MailRegisterDemo/service/ActiveServlet?code="+ code + "'>http://localhost:8080/MailRegisterDemo/service/ActiveServlet?code=" + code + "</href></h3></body></html>";message.setContent(content, "text/html;charset=UTF-8");// 3.發(fā)送郵件Transport.send(message);System.out.println("郵件成功發(fā)送!");} }學(xué)習(xí)網(wǎng)站:https://www.imooc.com/learn/770
相關(guān) API 解釋:https://blog.csdn.net/wenwen1538/article/details/24515023
Demo下載: https://download.csdn.net/download/qq_22685831/10340187
總結(jié)
以上是生活随笔為你收集整理的使用 Java Mail 实现注册时邮箱激活验证功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字菜场:智慧农贸大屏可视化大数据管理系
- 下一篇: Spring Boot--- sprin