使用C#,如何通过POP3从Gmail服务器检索电子邮件列表

Jef*_*man 5 c# asp.net gmail pop3

HY,

我有一个使用SSL通过Gmail SMTP服务器(smtp.gmail.com)发送邮件的应用程序.

现在我想阅读该帐户的电子邮件,是否有人知道如何在C#和ASP.NET中以编程方式进行此操作?

此时我正在使用此代码:

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 />"; 
Run Code Online (Sandbox Code Playgroud)

当我调试它时,它显示它已连接但在检索电子邮件时没有响应.

小智 1

这个开源项目(我参与的)的 POP3 功能包含了您需要的一切。包括安全通信支持和高级身份验证。

如果您确实想自己做一个,浏览源代码可能会节省您的开发时间。