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

时间:2010-09-24 09:06:03

标签: 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 />"; 

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

2 个答案:

答案 0 :(得分:1)

open source project的POP3功能(我参与其中)包含您需要的所有内容。包括安全通信支持和高级认证。

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

答案 1 :(得分:0)

我正在使用此代码项目link text中出现的示例库 有一个漂亮而干净的api可以使用pop3。