0

C# Gmail - Apiを使用して、特定の日のメール数をカウントしようとしました。

次のコードを使用します。

public static int CountMessages(GmailService サービス、文字列 userId、文字列クエリ)
 {
            int numberOfMessages = 0;

            UsersResource.MessagesResource.ListRequest リクエスト = service.Users.Messages.List(userId);
            request.Q = クエリ;

            行う
            {
                試す
                {
                    ListMessagesResponse 応答 = request.Execute();
                    if (response.Messages != null)
                    {
                        numberOfMessages += response.Messages.Count;
                    }

                    Console.WriteLine(request.PageToken);

                    request.PageToken = response.NextPageToken;
                }
                キャッチ (例外 e)
                {
                    Console.WriteLine("エラーが発生しました: " + e.Message);
                }
            while (!String.IsNullOrEmpty(request.PageToken));

            numberOfMessages を返します。
}

私のクエリは次のようなものです:

after:2014/05/25 before:2014/05/26 in:どこでも(何か)

gmail でクエリを実行すると、コードと同じ数の結果が得られません (多かれ少なかれ結果が得られますが、同じ量になることはありません)。

私のコードに何か問題がありますか?

参照:

  • Gmail API
  • メッセージの検索
  • Users.messages: リスト
  • 4

    2 に答える 2

    1

    まず第一に、コードはメッセージ数をカウントしていますが、Gmail はスレッド数を表示し、スレッドには複数のメッセージが含まれる場合があります。

    于 2014-08-14T13:53:03.520 に答える
    0

    Gmail で会話をオフにして、もう一度お試しください。

    于 2014-08-03T19:17:54.730 に答える