HY,

我正在使用此库http://mailsystem.codeplex.com/从gmail帐户programaticaly检索邮件。

在设置的“转发和POP / IMAP”标签中将“为所有邮件启用POP”设置为“确定”后,第一次运行应用程序时,一切正常(我得到了邮件计数和所有邮件的列表)菜单。但是当我再次运行它时,没有消息被检索。而且,如果我再次设置所有邮件的启用POP,该应用程序将再次运行。

我认为我必须在运行检索消息代码之前设置“为所有邮件启用POP”。

有谁知道如何在C#和asp.net中进行此编程?

我正在使用的代码:

Pop3Client pop = new Pop3Client();
        try
        {
            Label7.Text = string.Format("Connection to the pop 3 server : {0}", "pop.gmail.com ");
            pop.ConnectSsl("pop.gmail.com", 995, TextBox4.Text, TextBox5.Text);

            Label7.Text += string.Format("Message Count: {0}", pop.MessageCount.ToString());
            MessageCollection mc = new MessageCollection();
            for (int n = 1; n < pop.MessageCount + 1; n++)
            {
                Message newMessage = pop.RetrieveMessageObject(n);
                mc.Add(newMessage);

                 Label7.Text += string.Format("Message ({0}) : {1} ", n.ToString(), newMessage.Subject);
            }
        }

        catch (Pop3Exception pexp)
        {
            Label7.Text = string.Format("Pop3 Error: {0} ", pexp.Message);
        }

        catch (Exception ex)
        {
            Label7.Text = string.Format("Failed: {0} ", ex.Message);
        }

        finally
        {
            if (pop.IsConnected)
            {
                pop.Disconnect();
            }
        }


我正在使用前面提到的源代码中的ActiveUp.Net.Mail库。

最佳答案

您是否正在尝试通过IMAP4获得POP3行为?

使用POP3,通常会在检索到电子邮件后从服务器删除该电子邮件。然后,下次您进行下一步连接时,只有新消息将在您的应用程序中可用。等等。

使用IMAP4,消息将保留在服务器上。这是一种不同的方法。您必须在本地维护一个与IMAP4服务器同步的状态。

08-05 05:14