2010-09-24 6 views
5

Hy,C#, wie die Liste der E-Mails von Google Mail-Server über POP3 abrufen

ich eine Anwendung, die E-Mails mit Google Mail SMTP-Server (smtp.gmail.com) unter Verwendung von SSL sendet.

Jetzt möchte ich die E-Mails von diesem Konto lesen, hat jemand eine Idee, wie kann ich dies programmatisch in C# und ASP.NET machen?

An diesem Punkt bin ich mit diesem Code:

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 />"; 

Und wenn ich debuggen es ihm ist, zeigt, dass es angeschlossen ist, aber keine Antwort E-Mails in das Abrufen.

+0

Sollte nicht pop.gmail.com statt smtp.gmail.com in der TcpClient.Connect Adresse sein? –

+0

Ahh ja, mein Fehler, ich habe auf pop.gmail.com bearbeitet, aber ich habe immer noch das Problem ... –

Antwort

1

POP3 Funktionen dieser open source project (Ich bin beteiligt) enthält alles, was Sie brauchen. Einschließlich sicherer Kommunikationsunterstützung & erweiterte Authentifizierung.

Wenn Sie wirklich selbst eines machen wollen, wird Ihnen das Durchsuchen des Quellcodes wahrscheinlich Tage der Entwicklung ersparen.

+0

und dies funktioniert mit jeder Art von Konto? Wie ein Google Mail-Konto? –

+0

Jeder POP3-Account, einschließlich Google Mail. –

+0

Dieses Projekt ist auf Codeplex tot. Die Proben bauen nicht einmal. – Seany84

0

Ich verwende diese Beispielbibliothek, die bei The Code Project link text erschien, die eine schöne und saubere API hat, um mit pop3 zu arbeiten.