【问题标题】:Java Mail SMTP authentication requirement check without sending a mailJava Mail SMTP 身份验证要求检查而不发送邮件
【发布时间】:2021-10-02 20:42:11
【问题描述】:

我想知道我们如何在不发送电子邮件的情况下检查 SMTP 服务器是否需要身份验证。我在 Transport.send(mimemessage) 上收到 SMTPSendFailedException 其中进一步说“必须先发出 STARTTLS 命令”,但我不想使用任何身份验证方法。

有什么方法可以在不发送电子邮件的情况下检查是否需要身份验证。

任何帮助将不胜感激。

【问题讨论】:

    标签: java smtp jakarta-mail smtp-auth


    【解决方案1】:

    “必须先发出 STARTTLS 命令”

    这不是身份验证请求。 STARTTLS 命令是用于与服务器协商安全连接的协议的开始。如果服务器要求您协商一个安全连接以与它通信(在您选择的端口上),那么您必须这样做。

    这必须在服务器请求任何请求之前发生...

    有什么方法可以在不发送电子邮件的情况下检查是否需要身份验证。

    根据 SMTP 规范,可以请求某些命令(VRFY、EXPN)而无需进行身份验证,但是:

    • 规范规定客户端应该以 EHLO 开头,告诉服务器它是谁。
    • 服务器有权拒绝 VRFY 或 EXPN 请求,无论客户端是否已通过 EHLO 标识自己或对其自身进行身份验证(以某种方式)。

    我认为没有一种可靠的方法来测试服务器是否需要客户端/用户进行身份验证......在这个词的正确意义上......而不尝试发送电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 2018-07-24
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      相关资源
      最近更新 更多