1. 程式人生 > >Java Mail 傳送郵件126、163 、QQ

Java Mail 傳送郵件126、163 、QQ

下面是傳送的程式碼(可測試)

//1、創 建 連 接 對 象,連 接 到 郵 箱 服 務 器
        Properties props = new Properties();
        //開 啟 debug 調 試
        props.setProperty("mail.debug", "true");
        //stmp服 務 器 需 要 進 行 身 份 驗 證,也 就 是 用  戶 名 和 密 碼 的 校 驗,這 樣 才 
        能 通 過 驗 證
        props.setProperty("mail.smtp.auth", "true");
        //發 送 郵 件 協 議 名 稱
        props.setProperty("mail.transport.protocol", "smtp");
        //設 置 郵 件服 務 器 主 機 名
        props.setProperty("mail.host", hostSend);
        //設 端 口 號 (該 配 置 可 寫 可 不 寫)
        props.setProperty("mail.smtp.port", "465");
        //授 權 碼
        props.setProperty("mail.smtp.password", password);
        //開 啟 S S L 加 密,否 則 會 失 敗
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);
        //解決附件檔名過長的問題
        props.put("mail.mime.splitlongparameters", "false");
        System.setProperties(props);
        //Authenticator:認 證 信 息
        Session session = Session.getInstance(props, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return mAuthenticator.getPasswordAuthentication();
        //使 用 它 給 其 他 賬 戶 發 郵 件
            }
        });
        //下面設定郵件的內容(自行設定)
        Message message = new MimeMessage(session);
        message.saveChanges();
        //3.發 送 郵 件
        Transport trans = session.getTransport();
        //連 接 郵 件 服 務 器
        trans.connect(mAuthenticator.getUsername(), mAuthenticator.getPassword());
        //發 送 郵 件
        trans.sendMessage(message, message.getAllRecipients());
        //關 閉 連 接
        trans.close();
        //Transport.send(message);(兩 種 方 式 都 可 以)
        System.out.println("發 送 成 功");

 我們需要注意的引數有兩個:

props.setProperty("mail.host", hostSend);//我們需要修改伺服器的名稱 比如163對應 smtp.163.com
props.setProperty("mail.smtp.port", "465");//ssl加密的埠號都是465,所以我們不需要修改