2015-04-30 42 views
3

我試圖發送電子郵件的Java應用程序,以下指南上http://www.tutorialspoint.com/java/java_sending_email.htmJava郵件 - 當我嘗試運行它無法連接到主機

,copypasted第一代碼上面的鏈接,我得到一個錯誤,它無法連接到主機,這是一個本地主機。這裏是一個結果,當我ping本地主機:

Pinging Home-PC [::1] with 32 bytes of data: 
Reply from ::1: time<1ms 
Reply from ::1: time<1ms 
Reply from ::1: time<1ms 
Reply from ::1: time<1ms 

由於我在通訊大大缺乏經驗,我不知道哪裏出了問題,並再次,我需要幫助。那麼,我的localhost中的問題沒有被正確配置,或者是我的代碼有問題?我能做什麼?

我使用的是Tomcat v8.0服務器。

我也在控制檯輸出:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1; 
nested exception is: 
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2054) 
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697) 
at javax.mail.Service.connect(Service.java:364) 
at javax.mail.Service.connect(Service.java:245) 
at javax.mail.Service.connect(Service.java:194) 
at javax.mail.Transport.send0(Transport.java:253) 
at javax.mail.Transport.send(Transport.java:124) 
at test.Test.main(Test.java:51) 
Caused by: java.net.ConnectException: Connection refused: connect 
at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
at java.net.Socket.connect(Socket.java:589) 
at java.net.Socket.connect(Socket.java:538) 
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:329) 
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:236) 
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2020) 
... 7 more 
+2

答覆ping不代表SMTP端口已打開......您是否檢查端口是否打開? – m0skit0

+0

您必須使用自己的屬性更改屬性。如果您發佈了代碼,並且我們可以看到問題所在,那將會更好。 –

回答

1

我認爲,你沒有一個SMTP在本地機器上安裝 - 服務器。出於測試目的,請啓動FakeSMTP的實例。如果它已啓動並正在運行,則程序可以連接並刪除其郵件。

如果你想嘗試一點(假設你有一個Windows中),有Hamstermail(站點是德文 - 被警告;-)

這裏是一個結果,當我平localhost

這隻顯示服務器響應Echo Request。這並不意味着服務器運行SMTP服務,也不意味着如果服務器沒有迴應,服務器關閉 - 有時管理員會阻止ICMP-Echo-Requests

有時一個telnet $server 25允許連接到郵件服務器。

所致:java.net.ConnectException:連接被拒絕:連接

這表明,該服務是不活動又名端口關閉

+0

哦,非常感謝,我現在正在取得進展!當我開始FakeSMTP的實例時,它正在接收郵件。那麼,這是否意味着我必須以某種方式配置我的Tomcat服務器,如果我想發送實際的郵件? – Sarpy

+0

您需要一臺SMTP服務器才能真正發送郵件。當心從本地主機發送郵件 - 大多數情況下這些郵件都標記爲垃圾郵件。選擇一個已知的郵件提供商會更好。 –

+0

我已經管理,通過使用辦公室365。謝謝你的信息:) – Sarpy

相關問題