使用pop3从gmail获取最新的电子邮件

时间:2015-03-29 08:30:24

标签: c#-4.0 pop3

我想从Gmail收到最新的电子邮件,但我无法通过此计划获得。 我有一封来自Gmail的新电子邮件,但我的程序显示了另一封电子邮件。

private void button5_Click(object sender, EventArgs e)
{
    Cursor cr = Cursor.Current;
    Cursor.Current = Cursors.WaitCursor;
    try
    {
        TcpClient tcpclient = new TcpClient();
        tcpclient.Connect("pop.gmail.com", 995);
        System.Net.Security.SslStream sslstream = new SslStream(tcpclient.GetStream());
        sslstream.AuthenticateAsClient("pop.gmail.com");                 
        System.IO.StreamWriter sw = new StreamWriter(sslstream);
        System.IO.StreamReader reader = new StreamReader(sslstream);
        sw.WriteLine("USER MyGmail");
        sw.Flush();
        sw.WriteLine("PASS MyGmailPass");
        sw.Flush();
        sw.WriteLine("STAT");
        sw.Flush();
        sw.WriteLine("RETR 1\r\n");
        sw.Flush();
     }
           }

1 个答案:

答案 0 :(得分:1)

RETR命令用于下载指定索引的消息(从1开始,而不是从0开始)。

RETR 1检索消息假脱机中的第一条(也就是最旧的)消息,而不是最新消息。

如果您希望最新电子邮件到达您的GMail帐户,您需要先了解您的假脱机中有多少邮件。

我可以问你为什么要编写自己喜欢的程序,而不是使用像MailKit这样的库吗?它会让你的生活变得更加轻松。