Java傳送郵件找回密碼功能的實現
阿新 • • 發佈:2018-12-30
傳送郵件功能
找回密碼的功能幾乎是所有的專案所必備的功能,目前最流行的方式之一便是通過傳送郵件的方式,傳送給使用者修改密碼的連結,使用者通過登入郵箱找到連結地址,從而完成密碼的重置。這樣的方式相對來說比較安全可靠。這種方式的第一步便是傳送郵件。
準備工作:
使用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郵箱傳送郵件時,也需要開啟:
這樣就完成了,傳送的郵件的功能,從而為下一步實現找回密碼提供了基本條件。
由於時間問題,詳細完善後在後期進行。