我想在C#中实现一个POP3客户端,并且使用AUTH PLAIN的身份验证正在杀死我。我在pop3.live.com上使用我的帐户进行测试,但无法超越认证。我试过通过端口995和普通110(然后切换到TLS)通过SSL连接,但无法设法通过身份验证。c#POP3客户端实现
我使用TcpClient类来建立连接并从服务器获取+ OK响应。在进行非SSL连接时,我使用命令CAPA检查功能,并获得响应STLS。因此,我发送命令STLS,切换到SslStream,发送另一个CAPA命令来检查身份验证机制,并获得支持SASL PLAIN(不在常规连接中)。我已经尝试发送base64“account \ [email protected] \ 0password”,“\ [email protected] \ 0password”,“\ 0account \ 0password” 0password“......所有可能的组合,但是当发送证书与AUTH PLAIN一致时获得”协议错误“,或者在发送AUTH PLAIN(如预期的那样返回”+“)时发送证书时获得”未经授权...“。
我错过了什么吗?任何人都可以提供一个示例如何使用SSL/TLS进行身份验证?
谢谢!
我做了尝试,却得到了一个“协议错误16”,所以我假设我已经错过了一些东西发送AUTH PLAIN前。 – Glumac
您需要使用字节数组来表示该序列,而不是字符串。 – jstedfast
是的,没有其他方式可以写入流。我尝试了不同的编码(UTF8,ASCII),无论是否转换为base64,都没有成功。 – Glumac