1. 程式人生 > >Java傳送郵件找回密碼功能的實現

Java傳送郵件找回密碼功能的實現

傳送郵件功能

找回密碼的功能幾乎是所有的專案所必備的功能,目前最流行的方式之一便是通過傳送郵件的方式,傳送給使用者修改密碼的連結,使用者通過登入郵箱找到連結地址,從而完成密碼的重置。這樣的方式相對來說比較安全可靠。這種方式的第一步便是傳送郵件。

準備工作:

使用Java傳送郵件需要匯入以下兩個jar包:

  • JavaMail

以下是使用Java傳送郵件的程式碼:

package cn.com.mp.test;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import
javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendEmail { public static void main(String [] args) throws MessagingException { Properties props = new
Properties(); // 開啟debug除錯 props.setProperty("mail.debug", "true"); // 傳送伺服器需要身份驗證 props.setProperty("mail.smtp.auth", "true"); // 設定郵件伺服器主機名 使用163郵箱傳送 props.setProperty("mail.host", "smtp.163.com"); // 傳送郵件協議名稱
props.setProperty("mail.transport.protocol", "smtp"); // 設定環境資訊 Session session = Session.getInstance(props); // 建立郵件物件 Message msg = new MimeMessage(session); try { msg.setSubject("郵件主題"); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 設定郵件內容 msg.setText("郵件內容,找回密碼的連線"); // 設定發件人 msg.setFrom(new InternetAddress("[email protected]")); Transport transport = session.getTransport(); // 連線郵件伺服器 xzbbrvnlsjpdbfei transport.connect("[email protected]", "不是登入密碼,需要開啟客戶授權密碼,生成授權碼,此處填寫授權碼"); // 傳送郵件 transport.sendMessage(msg, new Address[] {new InternetAddress("目標地址,即接收郵件的郵箱地址")}); // 關閉連線 transport.close(); } }

以163郵箱為例,生成客戶授權密碼的方式如下:
這裡寫圖片描述

同樣使用qq郵箱傳送郵件時,也需要開啟:
這裡寫圖片描述

這樣就完成了,傳送的郵件的功能,從而為下一步實現找回密碼提供了基本條件。

由於時間問題,詳細完善後在後期進行。