Asynchronní zpracování e‑mailů s POP3 klientem
Asynchronní operace s Pop3Client
Práce se zprávami může být také prováděna asynchronně pomocí Aspose.Email Pop3Client. Tento článek ukazuje, jak asynchronně získat zprávy z poštovní schránky. Také ukazuje, jak vypsat zprávy poskytnutím kritérií vyhledávání pomocí MailQuery. Bude samostatně ukázáno, jak přerušit operaci s poštovní schránkou zahájenou pomocí úlohového asynchronního vzoru (TAP) metoda.
Asynchronní načítání zpráv
Následující úryvek kódu ukazuje, jak asynchronně načíst zprávy.
Seznam zpráv asynchronně s MailQuery
The MailQuery třída může být použita k určení kritérií vyhledávání pro asynchronní získání seznamu zpráv, jak je ukázáno v následujícím ukázkovém kódu.
Přerušení TAP metody
Od .NET Framework 4.5 můžete používat asynchronní metody implementované podle modelu TAP. Níže uvedený úryvek kódu ukazuje, jak získat informace o poštovní schránce pomocí metody založené na úlohách (task‑based asynchronous pattern) nazvané GetMailboxInfoAsync a poté po chvíli tento proces přerušte.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
using (Pop3Client client = new Pop3Client(host, 995, senderEmail, password, SecurityOptions.Auto))
{
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
AutoResetEvent autoResetEvent = new AutoResetEvent(false);
Exception exception = null;
ThreadPool.QueueUserWorkItem(delegate
{
try
{
// start receiving mailbox information
var task = client.GetMailboxInfoAsync(cancellationTokenSource.Token);
Pop3MailboxInfo mailboxInfo = task.GetAwaiter().GetResult();
Console.WriteLine("Message count: " + mailboxInfo.MessageCount);
}
catch (Exception e)
{
exception = e;
}
finally
{
autoResetEvent.Set();
}
});
Thread.Sleep(2000);
// stop receiving mailbox information
cancellationTokenSource.Cancel();
autoResetEvent.WaitOne();
if (exception is OperationCanceledException)
Console.WriteLine("Operation has been interrupted: " + exception.Message);
}