1. 程式人生 > 其它 >多項式泛做1

多項式泛做1

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();
        }
    }
}