c# POP3客户端实现

标签 c# authentication ssl tls1.2 pop3

我正尝试在 C# 中实现 POP3 客户端,但使用 AUTH PLAIN 的身份验证让我很吃力。我正在使用我在 pop3.live.com 上的帐户进行测试,但无法通过身份验证。我已尝试通过 SSL 通过端口 995 和常规 110 进行连接(然后切换到 TLS),但无法通过身份验证。

我正在使用 TcpClient 类建立连接并从服务器获得 +OK 响应。在进行非 SSL 连接时,我使用命令 CAPA 检查功能,并获得响应 STLS。因此,我发送了命令 STLS,切换到 SslStream,发送了另一个 CAPA 命令来检查身份验证机制并获得支持 SASL PLAIN(这在常规连接中是不支持的)。

现在我不知道用 AUTH PLAIN 发送什么 - 我试过发送 base64 "account\0account@hotmail.com\0password", "\0account@hotmail.com\0password", "\0account\0password “...所有可能的组合,但是在发送符合 AUTH PLAIN 的凭据时出现“协议(protocol)错误”,或者在发送 AUTH PLAIN 后发送凭据时出现“未经授权 ...”(按预期返回“+”)。

我错过了什么吗?谁能举例说明如何在使用 SSL/TLS 时进行身份验证?

谢谢!

最佳答案

您需要使用“\0account@hotmail.com\0password”

关于c# POP3客户端实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46332970/

相关文章:

c# - 找不到指定的命名连接,或者初始化字符串的格式不符合从索引 0 开始的规范。

c# - 如何在 asp.net 网站中允许撇号

jquery - 如何在登录尝试失败后保持打开的模式登录表单

c# - 在 C# 中,如何验证网络计算机上的用户?

python - 谷歌翻译 SSL 握手失败

c# - 导出或保存 CX509PrivateKey

c# - 在 Constructor 与 { get;set;} 属性中设置字段

c# - 将System.Type强制转换为特定的类

python - 在 html 页面中填写注册表单后,出现此错误并使用用户名和密码并将值存储在登录表单中

android - 解决android webview中redirect过多的问题