3

Gmail からメッセージを取得するための OpenPOP .net クライアントの使用。

新しいメッセージだけを取得するにはどうすればよいですか?

現在、私はアトム フィードを取得し、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 を有効にする方法については、このリンクを確認してください。

さて、c# を使用している場合は、IMAP 用の商用ライブラリがいくつかあり、無料のオープン ソース ライブラリがあります。目に見えないメッセージを取得するには、select コマンドに「見えない」フラグを指定する必要があります。これが例です

于 2010-01-16T20:29:03.447 に答える
1

UIDL各メールの をローカル データベースに保存する必要があります。新着メールを確認したい場合はUIDL、サーバー上の を取得し、ローカル データベースに既に存在するかどうかを確認します。そうでない場合は、新しいメールです。

Outlook は同じ戦略を使用します。

同 Q POP3 プロトコルを使用して新着メールのみを取得する方法

于 2012-04-26T16:12:54.913 に答える