未知的SMTP主机

我正在使用tomcat运行Java Web应用程序,通过电子邮件将生成的报告发送给用户。 我能够发送电子邮件,但几小时后服务器停止发送电子邮件,出现以下错误。

javax.mail.MessagingException: Unknown SMTP host: mail.mydomain.co.uk; nested exception is: java.net.UnknownHostException: mail.mydomain.co.uk at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1970) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) at javax.mail.Service.connect(Service.java:317) 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 com.turnkey.email.SendEmail.sendMail(SendEmail.java:119) at com.turnkey.thread.CommunicationThread.run(CommunicationThread.java:399) Caused by: java.net.UnknownHostException: mail.mydomain.co.uk at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938) ... 8 more 

一段时间后,服务器再次开始发送电子邮件。

谁能告诉我可能是什么问题。 我该如何解决这个问题?

谢谢

这看起来像是您的名称服务失败。 JDK无法查找主机名以查找其Internet地址。 由于这有时而不是其他工作,它看起来像名称服务的间歇性失败。 名称服务失败可能是由于您的本地操作系统出现故障,或者可能是由于某些网络故障导致与您的DNS服务器或其他名称服务服务器通信,或者可能是该DNS服务器或名称服务服务器出现故障本身。 确定故障的确切原因需要一些调试。 请注意,JDK会缓存名称服务器查找的结果一段时间,因此您需要将其纳入调试。

还要确保smtp主机名末尾没有空格,例如。 mail.google.comSPACEHERE。 令人惊讶的是,这发生在我身上,最后在移除这个空间后,没有人抱怨smtp主机。 电子邮件已成功发送

为主机设置域名的IP地址而不是域名。 在cmd上使用nslookup mail.mydomain.co.uk查找ip地址。 它对我有用。

特别是对于AIX或Linux OS环境,我们需要在etc / hosts文件中添加主机名。 Windows操作系统,这可能适用于Windows系统,因为没有严格的安全检查,但AIX或Linux必须将主机名添加到etc / hosts文件以便ping SMTP服务器。

避免这样做可能导致未知的主机问题