مدیریت ایمیل ناهمزمان با کلاینت POP3
عملیات ناهمگام با Pop3Client
کار با پیامها میتواند بهصورت ناهمزمان با استفاده از Aspose.Email انجام شود Pop3Client. این مقاله نشان میدهد چگونه پیامها را از یک صندوق ایمیل بهصورت ناهمزمان بازیابی کنید. همچنین نشان میدهد چگونه با ارائه معیارهای جستجو با استفاده از MailQuery. بهطور جداگانه نشان داده خواهد شد که چگونه یک عملیات با صندوق پستی که توسط الگوی ناهمزمان مبتنی بر کار (TAP) متد.
بازیابی پیامها به صورت ناهمزمان
کد زیر نشان میدهد چگونه پیامها را به صورت ناهمزمان بازیابی کنیم.
فهرستکردن پیامها بهصورت ناهمزمان با MailQuery
این MailQuery کلاس میتواند برای تعیین معیارهای جستجو جهت بازیابی فهرست پیامها بهصورت ناهمزمان استفاده شود همانطور که در نمونه کد زیر نشان داده شده است.
قطع یک متد TAP
.NET Framework 4.5 به بعد، میتوانید از متدهای ناهمگام پیادهسازی شده بر اساس مدل TAP استفاده کنید. قطعه کد زیر نشان میدهد که چگونه میتوان اطلاعات یک صندوق ایمیل را با استفاده از متد الگوی ناهمگام مبتنی بر تسک به نام GetMailboxInfoAsync و سپس پس از مدتی این فرآیند را قطع کنید.
// 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);
}