3

使用 OpenPOP .net 客户端从 Gmail 获取邮件。

我想知道如何才能只收到新消息?

目前,我获取 atom 提要,然后通过 OpenPOP 客户端(从第一个开始)获取与提要一样多的电子邮件。

    GmailAtomFeed feed = new GmailAtomFeed("user", "pass");
    feed.GetFeed();

    int unread = feed.FeedEntries.Count;

    POPClient client = new POPClient("pop.gmail.com", 995, "user", "pass", AuthenticationMethod.USERPASS, true);



    for (int i = 0; i < unread; i++)
    {
        Message m = client.GetMessage(i, false);

        // ...
    }

有一个更好的方法吗?

以及如何设置要阅读的未读消息?

4

2 回答 2

5

我怀疑你可以用pop3做到这一点。据我了解,POP3 不支持未读\未见电子邮件的概念。应该由客户端来跟踪已经显示给用户和没有显示的消息。

您可以做的是切换到使用IMAP协议访问 gmail。查看此链接,了解如何为您的 gmail 帐户打开它开始使用 IMAP for Gmail

现在,如果您使用的是 c#,则有一些用于 IMAP 的商业库和免费的开源库:就像 codeproject 上的这个:使用 C# 的 IMAP 客户端库。要获得看不见的消息,您必须为 select 命令指定“看不见”标志。这是一个例子

于 2010-01-16T20:29:03.447 回答
1

您必须将UIDL每封电子邮件的信息存储在本地数据库中。当您想检查新邮件时,您检索UIDL服务器上的 s 并查看是否已经在本地数据库中;如果没有,那就是新邮件。

Outlook 使用相同的策略。

同问如何使用 POP3 协议只检索新邮件

于 2012-04-26T16:12:54.913 回答