2016-12-11 6 views
0

これですべてのメッセージがダウンロードされました。インターネットアカウントのサーバーには多くのメッセージがあります。その後、すべてのメッセージをダウンロードした後、最新のメッセージだけをダウンロードします。しかし、最新の5つのメッセージだけをダウンロードするために、すべてのメッセージをダウンロードするのではなく、最初に欲しかったのだろうか?または最新の100メッセージのみ?そして、サーバー上のすべてのメッセージではありません。pop3clientを使って最新のメッセージだけをダウンロードすることはできますか?例えば、5つの最新のメッセージだけですか?

using (var client = new Pop3Client()) 
       { 
        client.Connect(textServer.Text, Convert.ToInt32(textPort.Text), ssl); 
        client.AuthenticationMechanisms.Remove("XOAUTH2"); 
        client.Authenticate(textUser.Text, textPassword.Text); 

        var uids = client.GetMessageUids(); 

        for (int i = 0; i < client.Count; i++) 
        { 
         if (backgroundWorker1.CancellationPending) 
         { 
          e.Cancel = true; 
          return; 
         } 
         if (!downloaded.Contains(uids[i])) 
         { 
          allMessages.Add(client.GetMessage(i)); 
          newmsg = client.GetMessage(i); 
          downloaded.Add(uids[i]); 
          SaveFullMessage(client.GetMessage(i), i); 
          w = new StreamWriter(emailsIDSFile, true); 
          w.WriteLine(uids[i]); 
          w.Close(); 
         } 

         int nProgress = (client.Count - i + 1) * 100/client.Count; 
         backgroundWorker1.ReportProgress(nProgress,newmsg);//, client.Count.ToString() + "/" + i); 
         newmsg = null; 
        } 

        client.Disconnect(true); 
       } 

私はすべてのメッセージのUIDのリスト取得しています:

var uids = client.GetMessageUids(); 

を、私は何とか論理的にのような何かをすることができれば、私は疑問に思う:だけで、最新の5つのUIDメッセージをダウンロードするか、最新の100 Uidsメッセージ。私はどうやってUids Listからダウンロードする最新の5または100のメッセージしか選択できないのだろうか。

サーバー上のすべてのメッセージについては、今は気にしなくても構いません。最新のN個のメッセージ、たとえば5または100の最新のメッセージのみを確認します。

+0

あなたは、各電子メールのIDをキャッシュすることがある場合は、idは、キャッシュ内にあるかどうかを確認、無視し、そうでない場合は、それをダウンロードし、キャッシュにIDを追加する必要があります。 – t0mm13b

答えて

関連する問題