java - 未知 SMTP 主机

标签 java smtp jakarta-mail

我正在使用 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 会缓存名称服务器查找的结果一段时间,因此您需要将其纳入调试中。

关于java - 未知 SMTP 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15543527/

相关文章:

c - 使用C发送smtp电子邮件,不接受用户名和密码

Java 邮件无法使用 tls 或 ssl 连接到 smtp

java - Java Mail 中的最大收件人数量

Java构造http请求报文

java - 如何使用Java获取系统IP?

java - 在android中创建一个文件路径

java - 当 SWT 中 tabItem 列表发生更改时,TabItem 不会刷新

c# - SMTP 服务器需要安全连接或客户端未通过身份验证

当启用断言 (-ea) 时,JavaMail 1.4 总是抛出 AssertionError

Java Mail API - 来自 FileInputStream 的数据源