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即可