-ERR POP3 is available only with SSL or TLS connection enabled

345
22 марта 2017, 14:44

Подскажите кто знает. Уже несколько дней мучаюсь с попыткой подключиться к серверу pop.mail.ru по 110 порту. При отправке USER получаю ошибку от сервера:

-ERR POP3 is available only with SSL or TLS connection enabled

В интернете все примеры не рассчитаны на то, что будет использоваться шифрование SSL или TLS, как подключиться с этим шифрованием? Может статьи какие нибудь есть? Спасибо за ответ.

Код:

mailclient = new TcpClient("pop.mail.ru", 110);
NetworkStream ns = mailclient.GetStream();
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
sw.WriteLine("USER " + "***@mail.ru");
sw.Flush();
Answer 1

Нужно использовать SslStream вместе с TcpClient, а затем использовать SslStream для чтения данных, а не TcpClient.

Что-то вроде:

    TcpClient mail = new TcpClient();
    SslStream sslStream;
    int bytes = -1;
    mail.Connect("pop.mail.ru", 995);
    sslStream = new SslStream(mail.GetStream());
    sslStream.AuthenticateAsClient("pop.mail.ru");
    byte[] buffer = new byte[2048];
    // Чтение потока, чтобы убедиться, что мы подключены
    bytes = sslStream.Read(buffer, 0, buffer.Length);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
    //Отправить имя пользователя для входа в систему
    sslStream.Write(Encoding.ASCII.GetBytes("USER USER_EMAIL\r\n"));
    bytes = sslStream.Read(buffer, 0, buffer.Length);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
    //Отправить пароль для входа в систему                       
    sslStream.Write(Encoding.ASCII.GetBytes("PASS USER_PASSWORD\r\n"));
    bytes = sslStream.Read(buffer, 0, buffer.Length);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
    //Получить первое письмо 
    sslStream.Write(Encoding.ASCII.GetBytes("RETR 1\r\n"));
    bytes = sslStream.Read(buffer, 0, buffer.Length);
    Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));

Взято отсюда

READ ALSO
Проблема с вызовом активностей

Проблема с вызовом активностей

День добрый много уважаемыеЕсть проблема с вызовом активностей, а именно через Bottom menu при клике, на необходимый мне объект(item), должна стартовать...

243
Разделить List<> на две части C#(mvc)

Разделить List<> на две части C#(mvc)

Всем доброго времени суток, есть метод который читает данные из файла и заполняет ListВ списке всегда будет фиксированное число данных = 8

286
ACCESS Поле объекта OLE

ACCESS Поле объекта OLE

Сделал поле объекта OLEЗагружаю туда картинку с помощью ADO

359
Изменить прозрачность Grid

Изменить прозрачность Grid

Имеется вот такой вид:

253