IMAP 响应 LOGIN BAD 无效命令

问题描述 投票:0回答:0

我正在尝试用 C# 编写 IMAP 客户端。我能够连接到主机,但之后无法获得预期的响应(例如,使用 LOGIN 或 CAPABILITY 等命令时)。

这是我的代码:

Socket socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPAddress hostIP = Dns.GetHostAddresses(host)[0];
IPEndPoint ipEndPoint = new(hostIP, port);

socket.Connect(ipEndPoint);

SslStream sslStream = new(new NetworkStream(socket));
sslStream.AuthenticateAsClient(host);

byte[] buffer = new byte[4096];

int bytesReceived = sslStream.Read(buffer, 0, buffer.Length);
string response = Encoding.UTF8.GetString(buffer, 0, bytesReceived);

System.Diagnostics.Debug.WriteLine(response); // * OK IMAP4 ready
            
buffer = Encoding.UTF8.GetBytes("LOGIN [email protected] password\r\n"); 

sslStream.Write(buffer, 0, buffer.Length);

bytesReceived = sslStream.Read(buffer, 0, buffer.Length);
response = Encoding.UTF8.GetString(buffer, 0, bytesReceived);

System.Diagnostics.Debug.WriteLine(response); // LOGIN BAD invalid command

对可能出错的地方有什么建议吗? IMAP 服务器需要通过 SSL 和端口 993 连接,这两者都已提供。主机链接是正确的,它们允许登录并且登录命令应该有效。这一定是代码内部的问题。

sockets ssl client client-server imap
© www.soinside.com 2019 - 2024. All rights reserved.