2016-12-11 4 views
0

Nun werden alle Nachrichten heruntergeladen und ich habe viele davon auf dem Server meines Internetkontos. Dann, nachdem ich alle Nachrichten heruntergeladen habe, werden nur die neuesten Nachrichten heruntergeladen. Aber ich frage mich, ob ich zum ersten Mal wollte, anstatt alle Nachrichten herunterzuladen, um nur die neuesten 5 Nachrichten herunterzuladen? Oder nur die neuesten 100 Nachrichten? Und nicht alle Nachrichten auf dem Server.Kann ich mit pop3client nur die neuesten Nachrichten herunterladen, zum Beispiel nur die 5 neuesten Nachrichten?

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); 
       } 

Ich erhalte eine Liste aller Nachrichten uids:

var uids = client.GetMessageUids(); 

Und ich frage mich, ob ich irgendwie so etwas wie in logisch tun könnte: Download nur die neuesten 5 uids Nachrichten oder die neuesten 100 UIDs Nachrichten. Ich frage mich, wie und ob ich aus der Uids-Liste nur die neuesten 5 oder 100 Nachrichten auswählen kann, die heruntergeladen werden sollen.

brauche ich nicht und kümmern sich nicht für jetzt über alle Nachrichten auf dem Server i nur für die N neuesten Meldungen zum Beispiel 5 oder 100 neueste Nachrichten lesen möchten.

+0

Sie müssen die IDs jeder E-Mail cachen, zu überprüfen, ob die ID im Cache ist, wenn es ist, ignorieren, sonst laden Sie es, fügen Sie die ID in den Cache. – t0mm13b

Antwort

Verwandte Themen