2011-12-15 65 views
4

使用OpenPop连接到Gmail时,即使我不删除它,我也只能检索一次电子邮件。使用GetMessageCount()我总是收到0封电子邮件。我如何获得那里的所有电子邮件?OpenPop - Gmail - GetMessageCount()返回0(零)

只有在读取它们并处理它们之后,才能发出删除命令。我正在使用以下代码来获取电子邮件:

using (var client = new Pop3Client()) 
{ 
    // Connect to the server 
    client.Connect(serverData.Hostname, serverData.Port, serverData.UseSsl); 

    // Authenticate ourselves towards the server 
    client.Authenticate(serverData.Username, serverData.Password, AuthenticationMethod.UsernameAndPassword); 

    var emailAmount = client.GetMessageSizes().Count; 

    // Fetch all the current uids seen 
    var msgCount = client.GetMessageCount(); 

    ..... 
} 

回答

7

Gmail是特别的。看看this StackOverflow post,它解释了非标准行为。

你有兴趣在什么是,Gmail将只有在ONE POP3会话显示一条消息,除非你做特别的东西,比如前面加上近期:在您的用户名前

+0

是否有可能让我的应用程序每次请求都有一些新的会话?如果是的话,怎么样?我不知道Gmail的技术部分是如何跟踪会话或应用ID以了解他们是否回答,但是一直以来“假”一个新ID是很酷的。 – Dryadwoods 2011-12-16 09:06:50

1

只获取未读邮件是POP3应该如何工作。如果您想查看和管理旧邮件,则应该使用IMAP。