2010-09-24 20 views
5

Hy,Korzystanie z C#, jak listę e-maili z serwera Gmail odzyskać poprzez POP3

Mam aplikacji, która wysyła maili z serwera Gmail SMTP (smtp.gmail.com) przy użyciu protokołu SSL.

Teraz chcę przeczytać e-maile z tego konta, czy ktoś ma jakiś pomysł, jak mogę to zrobić programowo w C# i ASP.NET?

W tym momencie używam tego kodu:

TcpClient tcpClient = new TcpClient(); 
tcpClient.Connect("pop.gmail.com", 587); 

NetworkStream netStream = tcpClient.GetStream(); 
System.IO.StreamReader strReader = new System.IO.StreamReader(netStream); 

Label7.Text = strReader.ReadLine() + "<br />"; 
//Label7.Text = "Server connected!"; 

byte[] WriteBuffer = new byte[1024]; 
ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 

WriteBuffer = enc.GetBytes("USER " + TextBox4.Text + "\r\n"); 
netStream.Write(WriteBuffer, 0, WriteBuffer.Length); 
Label7.Text += strReader.ReadLine() + "<br />"; 

WriteBuffer = enc.GetBytes("PASS " + TextBox5.Text + "\r\n"); 
netStream.Write(WriteBuffer, 0, WriteBuffer.Length); 
Label7.Text += strReader.ReadLine() + "<br />"; 

WriteBuffer = enc.GetBytes("LIST\r\n"); 
netStream.Write(WriteBuffer, 0, WriteBuffer.Length); 

String ListMessage; 
while (true) 
{ 
    ListMessage = strReader.ReadLine(); 
    if (ListMessage == ".") 
    { 
     break; 
    } 
    else 
    { 
     Label7.Text += ListMessage + "<br />"; 
     continue; 
    } 
} 

WriteBuffer = enc.GetBytes("QUIT\r\n"); 
netStream.Write(WriteBuffer, 0, WriteBuffer.Length); 
Label7.Text += strReader.ReadLine() + "<br />"; 

I kiedy debugowania to To pokazuje, że jest on podłączony ale nie ma odpowiedzi na pobieranie e-maili.

+0

Nie powinien być pop.gmail.com zamiast smtp.gmail.com w adresie TcpClient.Connect? –

+0

Ahh tak, mój błąd, zmieniłem na pop.gmail.com, ale nadal mam problem ... –

Odpowiedz

1

Funkcje POP3 tego open source project (Jestem zaangażowany w) zawiera wszystko, czego potrzebujesz. W tym obsługa bezpiecznej komunikacji & zaawansowane uwierzytelnianie.

Jeśli naprawdę chcesz zrobić to samemu, przeglądanie kodu źródłowego prawdopodobnie zaoszczędzi Ci kilka dni na rozwoju.

+0

i to działa z każdym rodzajem konta? Jak konto Gmail? –

+0

Dowolne konto POP3, w tym Gmail. –

+0

Ten projekt jest martwy na codepleksie. Próbki nawet nie budują. – Seany84

0

Używam tej przykładowej biblioteki, która pojawiła się w Code Project link text , która ma ładne i czyste API do pracy z pop3.