2015-04-30 33 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

相关问题