Java 實現向郵箱發送郵件及點擊郵件激活網頁打不開等問題,常用作註冊賬號及激活賬號(測試爲qq郵箱)

service
public void register(User user) throws UserException{
try {
//往數據庫添加用戶
userDao.addUser(user);

		String link="http://127.0.0.1:8080/bookstore/active?activeCode="+user.getActiveCode();
		String html="<a href=\""+link+"\">歡迎你註冊網上書城賬號,請點擊激活</a>";
		System.out.println(html);
		SendJMail.sendMail(user.getEmail(), html);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		throw new UserException("用戶註冊失敗,用戶名重複");
	}
	
}

utils
public class SendJMail {

	public static boolean sendMail(String email, String emailMsg) {
	
	String from = ""; 				// 郵件發送人的郵件地址
	String to = email; 										// 郵件接收人的郵件地址
	final String username = "";  	//發件人的郵件帳戶
	final String password = "";   					//發件人的郵件密碼


	//定義Properties對象,設置環境信息
	Properties props = System.getProperties();

	//設置郵件服務器的地址
	/*
	props.setProperty("mail.smtp.host", "smtp.qq.com"); // 指定的smtp服務器
	props.setProperty("mail.smtp.auth", "true");
	props.setProperty("mail.transport.protocol", "smtp");//設置發送郵件使用的協議
	*/
	props.setProperty("mail.transport.protocol", "smtp");
	props.setProperty("mail.smtp.auth", "true");
	//創建Session對象,session對象表示整個郵件的環境信息
	Session session = Session.getInstance(props);
	//設置輸出調試信息
	session.setDebug(true);
	try {
		//Message的實例對象表示一封電子郵件
		MimeMessage message = new MimeMessage(session);
		//設置發件人的地址
		message.setFrom(new InternetAddress(from));
		//設置主題
		message.setSubject("用戶激活");
		//設置郵件的文本內容
		//message.setText("Welcome to JavaMail World!");
		message.setContent((emailMsg),"text/html;charset=utf-8");
		
		//設置附件
		//message.setDataHandler(dh);
		
		//從session的環境中獲取發送郵件的對象
		Transport transport=session.getTransport();
		//連接郵件服務器
		transport.connect("smtp.qq.com",25, username, password);
		//設置收件人地址,併發送消息
		transport.sendMessage(message,new Address[]{new InternetAddress(to)});
		transport.close();
		return true;
	} catch (MessagingException e) {
		e.printStackTrace();
		return false;
	}
}

}
SendJMail類中,有username 與password兩個屬性 ,請自行填寫自己的公司郵件服務器賬號及密碼,若自行本地測試,我是使用的qq郵箱,要獲取qq郵箱的授權碼
如何獲取qq郵箱授權碼,如下圖

如上圖,點擊左上角的設置
在這裏插入圖片描述
進入到上方界面, 點擊賬戶下滑會看到如下圖
在這裏插入圖片描述
這裏開啓pop3與smtp服務,即可獲取授權碼

本地測試中password需要填寫授權碼

倘若你的郵件發送成功了以後,點擊郵件卻無法打開網頁出現下圖這種情況
在這裏插入圖片描述
這裏將郵件中的a標籤中href的地址中的localhost 改爲127.0.0.1即可在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章