多項式泛做1
阿新 • • 發佈:2022-03-23
public class SendEmail extends Thread{ private User user; public SendEmail(User user) { this.user=user; } //傳送人郵箱; private String fromEamil="傳送人@qq.com"; //傳送人授權碼; private String code="授權碼"; @Override public void run() { try { Properties properties = new Properties(); //設定qq郵件伺服器; properties.setProperty("mail.host", "smtp.qq.com"); //郵件傳送協議; properties.setProperty("mail.transport.protocol", "smtp"); //需要驗證使用者名稱與密碼; properties.setProperty("mail.smtp.auth", "true"); //QQ郵箱的SSL加密; MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.socketFactory", sf); //使用JavaMail傳送郵件; //1.首先建立整個應用程式的全域性session物件;(啟動==>session銷燬結束) //QQ的獨特建立方式;===> Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //userName:使用者名稱 password:授權碼 return new PasswordAuthentication(fromEamil, code); } }); //開啟session的debug模式; session.setDebug(true); //2.session==>獲取Transport物件 Transport ts = session.getTransport(); //3.使用郵箱的授權碼,使用者名稱,連線郵件的伺服器; ts.connect("smtp.qq.com", fromEamil, code); //4.建立郵件; 需要傳遞session; MimeMessage message = new MimeMessage(session); //需要指明郵件的傳送人; message.setFrom(new InternetAddress(fromEamil)); //指明收件人==> message.setRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail())); //郵件標題; message.setSubject("XX註冊提示郵件", "utf-8"); //文字內容; message.setContent("使用者"+ user.getName()+",您的密碼為"+user.getPassword(), "text/html;charset=UTF-8"); //5.傳送郵件; 需要指明發送的地址; ts.sendMessage(message, message.getAllRecipients()); //6.關閉; ts.close(); } catch (Exception e) { e.printStackTrace(); } } }