これですべてのメッセージがダウンロードされました。インターネットアカウントのサーバーには多くのメッセージがあります。その後、すべてのメッセージをダウンロードした後、最新のメッセージだけをダウンロードします。しかし、最新の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の最新のメッセージのみを確認します。
あなたは、各電子メールのIDをキャッシュすることがある場合は、idは、キャッシュ内にあるかどうかを確認、無視し、そうでない場合は、それをダウンロードし、キャッシュにIDを追加する必要があります。 – t0mm13b