为什么我需要在base64中编码登录名和密码,当使用SMTP-AUTH。以下是我的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. 发布于 2009-11-07 02:52:43
基本的SMTP根本不需要身份验证。SMTP-AUTH是在RFC 4954中定义的,但它没有定义您在这里使用的特定类型的身份验证“auth login”。上面确实写着。
服务器实现必须实现不允许任何明文密码机制的配置
我找不到“身份验证登录”的规范,尽管谷歌显示它最有可能是Microsoft exchange特有的功能。进一步的谷歌搜索表明您的示例是直接从here复制的。
如果你问为什么特定的例子是base64编码的,那是因为微软对RFC禁止明文的解释很愚蠢。如果您想知道为什么其他SMTP身份验证机制使用base64,这是因为通常它们发送的数据实际上是某种类型的二进制数据(例如共享秘密的MD5散列和服务器提供的令牌)。如果这不能回答您的问题,请编辑您的问题以包含更多详细信息。
https://stackoverflow.com/questions/1689381
复制相似问题