使用SMTP-AUTH时,为什么需要在base64中对登录名和密码进行编码。以下是我的SMTP会话示例
220 ALAN.CP.com Microsoft ESMTP MAIL Service
ehlo
250 ALAN.CP.com Hello [10.10.1.1] more...
verbs
250 OK
auth login
334 VXNlcm5hbWU6
<base64 encoded password>
334 UGFzc3dvcmQ6
<base64 encoded password>
235 2.7.0 Authentication successful.
答案 0 :(得分:2)
基本SMTP根本不需要身份验证。 SMTP-AUTH在RFC 4954中定义,但它没有定义您在此处'auth login'使用的特定auth类型。确实如此。
服务器实现必须实现一个不允许任何明文密码机制的配置
我找不到'AUTH LOGIN'的规格,虽然谷歌搜索表明它最有可能是微软的交换功能。进一步的Google搜索表示您的示例是直接从here复制的。
如果你问为什么特定的例子是base64编码的,那是因为微软对RFC禁止明文的愚蠢解释。如果您想知道为什么其他SMTP身份验证机制使用base64,那么因为他们发送的数据通常实际上是某种二进制数据(如共享密钥的MD5哈希值和服务器提供的令牌)。如果这不能解答您的问题,请修改您的问题以包含更多详细信息。