Klient POP3 gmail problem

0

Witam,

piszę prostego klienta POP3. Udaje mi się nawiązać połączenie z gmailem przez SSLa oczywiście i dostaję taką odpowiedź:

+OK Gpop ready for requests from 93.105.46.8 q31pf2090269bkf.12

Zamiast timestamp`a którego wg. tutoriali powinienem zaszyfrować wraz z hasłem za pomocą algorytmu MD5 otrzymuję to coś q31pf2090269bkf.12. Czytałem, że jest to związane z jakimś fetchmailem (z tym że nie bardzo wiem o co chodzi).. Nie wiem jak dalej autoryzować nazwę użytkownika i hasło..
Fragment kodu:

            client = new TcpClient();
            client.Connect(mailserver, port);   // pop.gmail.com, 995

            SslStream stream = new SslStream(client.GetStream(),false);

            stream.AuthenticateAsClient(mailserver);   // to działa
            
            StreamReader reader = new StreamReader(stream);
            StreamWriter writer = new StreamWriter(stream);

            string response = reader.ReadLine();
            textToBox.Text = response;

            writer.Write("USER [email protected]");   // odtąd jest zwiecha

            response = reader.ReadLine();
            textToBox.Text = response;

            writer.Write("PASS xxxxxxxxxx");

            response = reader.ReadLine();
            textToBox.Text = response; 

Nie wiem własnie o co chodzi z tym fechtem.. chciałbym normalną autoryzację pop3 a tu coś takiego.. padam już na klawiaturę.. proszę o wskazówki..

0

a w ogole to gmail udpostepnia IMAP, ktory jest duzo nowoczesniejszym standardem niz POP3

0

próbując łączyć się przez IMAP i tak dostaje to samo na początku co w przypadku POP3.. więc chyba i tak będzie trzeba przez to przebrnąć.. no ale nie wiem.. Poczytam o tych uwierzytelnieniach jeszcze.. dzięki

0

Problem rozwiązany.. była to kwestia encodingu.. jakby ktoś na przyszłość potrzebował:

            client = new TcpClient();

            client.Connect(mailserver, port);  

            SslStream stream = new SslStream(client.GetStream(), false);
            stream.AuthenticateAsClient(mailserver);          
                        
            StreamReader reader = new StreamReader(stream);

            string response = reader.ReadLine();
            textToBox.Text = response;

            string cmd = "USER [email protected]";
            byte[] bcmd = Encoding.ASCII.GetBytes(cmd + "\r\n");
            stream.Write(bcmd, 0, bcmd.Length);
            textToBox.Text += "\n" + reader.ReadLine();

            cmd = "PASS xxxxxx";
            bcmd = Encoding.ASCII.GetBytes(cmd + "\r\n");
            stream.Write(bcmd, 0, bcmd.Length);
            textToBox.Text += "\n" + reader.ReadLine();
 

Odpowiedź serwera:

+OK Gpop ready for requests from 93.105.46.8 n22pf2738728bkw.27
+OK send PASS
+OK Welcome. 

1 użytkowników online, w tym zalogowanych: 0, gości: 1