JavaMail發送郵件發佈出去問題

java發送郵件方法,老是報錯,報錯信息以下:javax.mail.AuthenticationFailedExceptionjava

鏈接不上smtp服務器,緣由是stmp服務器沒有受權,好比說你用qq發郵件:927xxxxx@qq.com    你就必須對當前郵箱進行受權,受權步驟百度很簡單,須要發送一個短信就開了受權。服務器

Transport transport = mailSession.getTransport("smtp");
        transport.connect(smtpHost, "xxxxx@163.com", "密碼");//密碼是受權碼
        transport.sendMessage(testMessage, testMessage.getAllRecipients());
        transport.close();

這樣以後就不會報這個錯了:javax.mail.AuthenticationFailedException。
我在繼續進行測試的時候,發現報另一個錯誤session

javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:823)
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:756)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:673)
    at javax.mail.Service.connect(Service.java:295)
    at javax.mail.Service.connect(Service.java:176)
    at com.ab.itws.common.SendHtmlMail.sendMessage(SendHtmlMail.java:43)
    at com.ab.itws.common.SendHtmlMail.main(SendHtmlMail.java:61)

 

發現原來是端口的問題測試

             // SMTP 服務器的端口 (非 SSL 鏈接的端口通常默認爲 25, 能夠不添加, 若是開啓了 SSL 鏈接, //
            /* 須要改成對應郵箱的 SMTP 服務器的端口, 具體可查看對應郵箱服務的幫助, // QQ郵箱的SMTP(SLL)端口爲465或587, */
System.out.println("Configuring mail session for: " + smtpHost); 
java.util.Properties props = new java.util.Properties();
props.setProperty("mail.smtp.auth", "true");// 指定是否須要SMTP驗證
props.setProperty("mail.smtp.host", smtpHost);
// 指定SMTP服務器
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", "587");
//SMTP的端口號
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(true);
// 是否在控制檯顯示debug信息

端口改好以後,終於解決了問題。
郵件成功發出ui

相關文章
相關標籤/搜索