2

私は誰かがこれについて私を助けることができるかどうか疑問に思っていました.

私はhttp://www.lesnikowski.com/mail/からの mail.dll のトレイルを扱っていましたが、これは非常に素晴らしいツールであり、残念ながら学生になる余裕はありません (約 150 ユーロですが、それでも私には非常に高価です)。 :/) そして、これは私の論文の小さなモジュールであり、私の教員も学生のためにこれらのものを購入する余裕はありません :/ とにかく、私は無料のツールに行かなければなりませんでした (オープンソース以外のものを提案しないでください - 私を信じてください)私はそれらをすべて試しました)。

さて、私は InterIMAP を調査しようとしています。数時間、Gmail アカウントからの未読メールをリストしようとしていますが、うまくいかないようです。うまく接続できますが、未読メールを見つけるのは簡単な作業ではないようです.数え切れないほどのアプローチを試しましたが、受信トレイに未読メールが届かないようです(受信トレイに大量のメールがあり、未読メールが欲しいだけです) )。誰か助けてくれませんか?私はこれを何年も前から機能させようとしてきましたが、ドキュメントがかなり不足しており、これまでのところすべての試みが失敗に終わっています。

助けてください!!

私が現在持っているいくつかのコード: ` IMAPConfig config = new IMAPConfig("myhost", "username", "pass", true, true, "");

        config.CacheFile = "";

        IMAPClient client = null;
        try
        {
            client = new IMAPClient(config, null, 5);
        }
        catch (IMAPException e)
        {
            Console.WriteLine(e.Message);
            return;
        }
        Console.WriteLine(DateTime.Now.ToString());


        IMAPFolder f = client.Folders["INBOX"];
        IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchNew()); // <--- Gives me no results even though i do have unread messages!
4

2 に答える 2

2

目標を達成できなかった場合は、次の手順に従います。

次のようにコーディングする必要があります。

1 つ目: SearchQuery クラス内に、たとえば、新しいプロパティ "unread" を追加します。2 番目: IMAPSearchQuery を返す新しいメソッドを追加します。未読メールをすばやく検索します。そんな感じ:

    public static IMAPSearchQuery QuickSearchUnread()
    {
        IMAPSearchQuery query = new IMAPSearchQuery();
        query.unread = true;

        return query;
    }

3td: クラス IMAPFolder 内に、IMAPSearchResult 型を返し、パラメータとして IMAPSearchQuery を受け取るメソッドが呼び出されます。このメソッドは、IMAP コマンド クエリ (IMAP ベースのプロトコル) を使用してクエリを "構築" します。未読クエリに次を追加する必要があります。

            public IMAPSearchResult Search(IMAPSearchQuery query)
            {
                ...
                if (query.Unread)
                    searchTerms.Add("UNSEEN");
                .
                .
                ...
            }

4 番目: 新しい QuickSearch で Search メソッドを呼び出します。

config.CacheFile = "";

    IMAPClient client = null;
    try
    {
        client = new IMAPClient(config, null, 5);
    }
    catch (IMAPException e)
    {
        Console.WriteLine(e.Message);
        return;
    }
    Console.WriteLine(DateTime.Now.ToString());


    IMAPFolder f = client.Folders["INBOX"];
    IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchUnread());

進捗状況をお知らせください。お役に立てば幸いです。

さよなら。

于 2012-01-12T20:22:02.300 に答える
1

正直なところ、interIMAPが適切に機能しておらず、何らかの理由で電子メールのインデックスが作成されているために速度が低下したため、Mail.dll試用版を使用することになりました:s

于 2010-05-13T22:17:04.803 に答える