Теперь я просто получаю все сообщения в событии dowork на рабочем столе:Как я могу проверить новые электронные письма и если есть новые письма, чтобы получить их с помощью MailKit?
private int numberofallmessages = 0; private int countMsg = 0;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
List<string> uids = new List<string>();
using (var client = new Pop3Client())
{
client.Connect(textServer.Text, Convert.ToInt32(textPort.Text), ssl);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(textUser.Text, textPassword.Text);
for (int i = client.Count -1; i > 0; i--)
{
if (backgroundWorker1.CancellationPending == true)
{
e.Cancel = true;
return;
}
if (i > 0)
{
allMessages.Add(client.GetMessage(i));
}
int nProgress = (client.Count - i + 1) * 100/client.Count;
backgroundWorker1.ReportProgress(nProgress, client.Count.ToString() + "/" + i);
}
client.Disconnect(true);
}
}
Я получаю все сообщения о 6000. Теперь я хочу, чтобы в случае нажатия кнопки код, так что каждый раз, когда я нажимаю на кнопку она будет проверять на новую почту. Такая же идея, как в перспективе, например.
А также, возможно, использовать событие, которое автоматически выдаст уведомление, когда будут отправлены новые письма.
Я видел этот пример кода:
MailKit E_MailKit_MailFolder_CountChanged
Но первый я не уверен, если это то, что мне нужно/хочу в моем случае, и второй в примере они используют протокол IMAP, но в моем коде Я использую pop3, а также мою учетную запись, которую я использую в фоновом режиме в Authenticate, является учетной записью pop3.
Я хочу, чтобы один раз после того, как я получил все сообщения, такие как 6000 с этого момента, при нажатии кнопки он будет проверять/получать только новые письма и не все снова 6000 писем.
Я знаю, что на pop3 вы не можете проверить на сервере для новых сообщений электронной почты. Но, может быть, есть способ сделать это как клиент? Может быть, как-то с идентификаторами писем? В Outlook, например, вы нажимаете на кнопку, и она очень быстро проверяет pop3 для новых писем, это не загружает/получает все сообщения каждый раз. –