由于临时原因 SMTP 不可用

SMTP not available due to a temporary reason

我正在尝试使用 javax.mail api 和 TLS 连接到 SMTP 服务器,但出现错误:

"javax.net.ssl.exception: Unrecognized ssl message, plaintext connection?"

报错步骤为: . .

  1. 客户端发送 STARTTLS

  2. 服务器回答:继续使用 TLS

  3. 客户端发送包含二进制数据的回复,但在同一封邮件的末尾,也将 SMTP 服务器的名称作为纯文本发送...

  4. 服务器回答:"SMTP not available due to a temporary reason"

  5. 客户端退出并打印错误:"javax.net.ssl.exception: Unrecognized ssl message, plaintext connection?"

我认为该错误与在客户端问候消息(上面的第 3 步)中发送串联的 SMTP 服务器名称(作为纯文本)有关,但是,还有关于为什么会发生这种情况的想法吗? 客户端 Java 属性为:

props.put("mail.smtp.host", "smtp-server-hostname");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "false");
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.put("mail.debug", "true");

(服务器配置为在端口 25 中接受 TLS)

谢谢!

我发现了问题所在:我在我的 maven 中使用 :

<dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
</dependency>

而不是:

 <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>
</dependency>