相信大家對于網(wǎng)站也好,手機app也好,用戶注冊時,需要進行郵箱驗證的功能特別好奇吧,本篇我將帶領(lǐng)大家一起實現(xiàn)一下這個簡單而又神奇的小功能,讓我們的應(yīng)用也可以加入這些神奇的元素。廢話不多說,下面開始我們今天的內(nèi)容介紹。
首先實現(xiàn)上面的功能,需要一個固定的發(fā)送電子郵件的郵箱地址,這里我們就以我們經(jīng)常使用的QQ郵箱為例實現(xiàn)一下這個功能。
第一件事,你需要開啟QQ郵箱的IMAP/SMAP服務(wù):
登錄QQ郵箱-->設(shè)置-->賬號-->開啟IMAP/SMAP與P0P3/SMAP



開啟這兩個時,你會獲得兩個密碼,接下來的內(nèi)容中會使用到。
發(fā)送電子郵件服務(wù),需要使用到一下三個JAR包:mail.jar;activation.jar;cos.jar,這里我已經(jīng)幫大家整理好了,下載地址:http://pan.baidu.com/s/1sknsZOp,下載好我們的JAR包,導(dǎo)入到我們工程的lib目錄下即可。
發(fā)送電子郵件的java代碼如下:
import java.util.PRoperties;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * 使用QQ郵箱IMAP/SMTP的實現(xiàn)發(fā)送電子郵件 * 2015-12-06 */public class Mail { public static void main(String[] args) { Properties props = new Properties(); props.put("mail.smtp.host", "smtp.qq.com"); props.put("mail.smtp.port", "587");//使用465或587端口 props.put("mail.smtp.auth", "true");//設(shè)置使用驗證 props.put("mail.smtp.starttls.enable","true");//使用 STARTTLS安全連接 try { PopupAuthenticator auth = new PopupAuthenticator(); session session = Session.getInstance(props, auth); session.setDebug(true);//打印Debug信息 MimeMessage message = new MimeMessage(session); Address addressFrom = new InternetAddress(PopupAuthenticator.mailuser + "@qq.com", "");//第一個參數(shù)為發(fā)送方電子郵箱地址;第二個參數(shù)為發(fā)送方郵箱地址的標簽 Address addressTo = new InternetAddress("xxxxxxxxxxxx", "");//第一個參數(shù)為接收方電子郵箱地址;第二個參數(shù)為接收方郵箱地址的標簽 message.setSubject("發(fā)送電子郵件的主題"); message.setText("發(fā)送電子郵件內(nèi)容"); message.setFrom(addressFrom); message.addRecipient(Message.RecipientType.TO, addressTo); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect("smtp.qq.com", PopupAuthenticator.mailuser, PopupAuthenticator.passWord); transport.send(message); transport.close(); System.out.println("發(fā)送成功"); } catch (Exception e) { System.out.println(e.toString()); System.out.println("發(fā)送失敗"); } }}class PopupAuthenticator extends Authenticator { public static final String mailuser = "1453296946";//發(fā)送方郵箱'@'符號前的內(nèi)容:1453296946@qq.com public static final String password = "xxxxxxxxxxxx";//成功開啟IMAP/SMTP服務(wù),在第三方客戶端登錄時,騰訊提供的密碼。注意不是郵箱密碼 public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(mailuser, password); }}
是不是很簡單,接下來我們的郵箱驗證、登錄驗證、注冊驗證、找回密碼是不是都找到實現(xiàn)的方向啦。
新聞熱點
疑難解答