2014-07-03 272 views
2

我正嘗試在java中編寫一個應用程序來發送電子郵件,我在YouTube上找到了一個教程並試圖關注它。但它不適合我還在上班,這裏是錯誤我得到JavaMail無法發送電子郵件

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25, response: 421 
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1949) 
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) 
at javax.mail.Service.connect(Service.java:295) 
at javax.mail.Service.connect(Service.java:176) 
at javax.mail.Service.connect(Service.java:125) 
at javax.mail.Transport.send0(Transport.java:194) 
at javax.mail.Transport.send(Transport.java:124) 
at libraryFineList.ParseRecords.main(ParseRecords.java:90) 

我不知道,什麼是錯的,什麼是我在谷歌發現,沒有幫助,

這裏是代碼

public static void main(String[] args) throws IOException, MessagingException { 

    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.socketFactory.port", 465); 
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "465"); 

    Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator(){ 
     protected PasswordAuthentication getPasswordAuthentication(){ 
     return new PasswordAuthentication("[email protected]", "pass"); 

     } 
    } 

      ); 

    try{ 
     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress("[email protected]")); 
     message.addRecipient(Message.RecipientType.TO, 
        new InternetAddress("[email protected]", "Mr. User")); 
     message.setSubject("Your Example.com account has been activated"); 
     message.setText("Worked"); 
    Transport.send(message); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

here are the libraries that i downloaded and added to build path

enter image description here

+0

爲我工作(javax.mail 1.5.2)。當然你沒有防火牆或路由器問題? – MadProgrammer

+1

你是否也考慮嘗試一個新的端口587例如,但錯誤消息並不真正匹配你的源代碼 – MadProgrammer

+0

@MadProgrammer剛剛嘗試過的錯誤是完全一樣的,我可以用防火牆或路由器有什麼樣的問題? – Jenny

回答

0

我t很奇怪,你的錯誤信息是抱怨連接到localhost的問題:25當你的屬性文件明確提示你應該使用smtp.gmail.com。

我不認爲有什麼可怕的事情與您的主機文件重定向smtp.gmail.com回到127.0.0.1什麼的,是嗎?如果您從命令行輸入ping smtp.gmail.com,會發生什麼情況?

除此之外,我建議檢查您使用的是最新版本的Java郵件。

+0

發佈ping結果 – Jenny