У меня есть приложение, которое отслеживает почтовый ящик Exchange Server для входящей почты. Он работает с другими системами, но для одного из наших клиентов мы получаем ошибку: -ERR Command is not valid in this state.
Получение команды не действительна Ошибка входа в Exchange Server с использованием POP 3
Я не думаю, что это имеет какое-то отношение к самому коде, потому что мы получаем то же сообщение об ошибке, когда мы пытаемся войти в систему, используя Telnet. Ошибка возникает, когда Пользователь передан. Для справки, я добавил свой код для входа ниже.
try
{
tcpClient = new TcpClient(Host, Port);
}
catch (SocketException e) { ... }
String response = "";
try
{
streamReader = GetStreamReader(tcpClient);
response = streamReader.ReadLine();
if (response.StartsWith("+OK"))
{
response = SendReceive("USER ", UserName.Trim() + "@" + Domain.Trim());
if (response.StartsWith("+OK"))
response = SendReceive("PASS ", Password);
}
}
catch (Exception e) { ... }
И SendReceive метод ниже:
private String SendReceive(String command, String parameter)
{
String result = null;
try
{
String myCommand = command.ToUpper().Trim() + " " + parameter.Trim() + Environment.NewLine;
byte[] data = System.Text.Encoding.ASCII.GetBytes(myCommand.ToCharArray());
tcpClient.GetStream().Write(data, 0, data.Length);
result = streamReader.ReadLine();
}
catch { } // Not logged in...
return result;
}
Благодарим за отзыв. Мы уже проверили, и у них нет SSL. Мы подключаемся к порту 110. Похоже, MailKit будет намного проще, но моя компания предпочитает создавать все свои собственные коды. – Tim
Если вам нужна дополнительная помощь, вам необходимо как минимум предоставить список возможностей, поддерживаемых сервером POP3 (т. Е. Результаты команды CAPA). – jstedfast
Возможно, вы также захотите ознакомиться с спецификацией для расширений POP3: https://www.rfc-editor.org/rfc/rfc2449.txt – jstedfast