Я работаю над C # MailClient, который работает по протоколу IMAP, но я получаю неправильный ответ, который означает, что ответ даст мне повторяющиеся результаты.
Как, скажем, в первый раз, когда я посылаю команду, как это.
byte[] commandBytes = System.Text.Encoding.ASCII.GetBytes(("$ UID FETCH " + index + " (BODY[HEADER.FIELDS (SUBJECT FROM DATE)])\r\n"));
и второй раз отправляю вот так.
byte[] commandBytes = System.Text.Encoding.ASCII.GetBytes(("$ UID FETCH " + index + " (BODYSTRUCTURE)" + "\r\n"));
поэтому я снова получаю первый результат команды дважды или более чем 2 раза;
и иногда это продолжает давать мне первый результат.
Мой метод Response () похож на этот.
private string Response()
{
string response = string.Empty;
byte[] data = new byte[_imapClient.ReceiveBufferSize];
int ret = _imapNs.Read(data, 0, data.Length);
response = Encoding.ASCII.GetString(data,0,ret);
return response;
}
_imapClient является объектом
private TcpClient _imapClient;
и я принимаю значение _imapClient, как это.
public string GetMessageBodyStructure(int index)
{
byte[] commandBytes = System.Text.Encoding.ASCII.GetBytes(("$ UID FETCH " + index + " (BODYSTRUCTURE)" + "\r\n"));
_imapNs.Write(commandBytes, 0, commandBytes.Length);
_imapNs.Flush();
return Response();
}
Где я не прав, поправьте меня, спасибо ..