我在通过 Windows Server 中的应用程序使用 Office365 Exchange 服务器的 Java Mail 发送邮件时遇到以下异常。 Windows服务器位于云平台。与我们的应用程序相同的配置(Exchange 服务器详细信息)正在 Windows 11 个人笔记本电脑和另一个 Windows 服务器(位于不同的云供应商)中运行。
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Unknown SMTP host: smtp.office365.com;
nested exception is:
java.net.UnknownHostException: smtp.office365.com. Failed messages: javax.mail.MessagingException: Unknown SMTP host: smtp.office365.com;
nested exception is:
java.net.UnknownHostException: smtp.office365.com; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Unknown SMTP host: smtp.office365.com;
nested exception is:
java.net.UnknownHostException: smtp.office365.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:437)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:361)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:356)
at com.grc.jframework.mail.FailsafeMailSender.sendInternal(FailsafeMailSender.java:146)
at com.grc.jframework.mail.FailsafeMailSender.lambda$init$0(FailsafeMailSender.java:115)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.UnknownHostException: smtp.office365.com
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 11 more
Windows Server 端有什么需要更改/更新的配置吗?
以下是 SMTP 服务器详细信息:
smtp.发件人.主端口 = 587
smtp.sender.reserve.auth_type = 匿名
smtp.sender.main.auth_type = TLS
smtp.sender.main.host = smtp.office365.com
smtp.发件人.保留端口 = 25
smtp.sender.main.timeout_sec = 90
正如 @Mark Rotteveel 在评论中建议的那样,这是 smtp.office365.com DNS 的问题,并已由管理团队解决。