Java Mail 傳送郵件126、163 、QQ
阿新 • • 發佈:2018-12-28
下面是傳送的程式碼(可測試)
//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,所以我們不需要修改