معالجة البريد الإلكتروني غير المتزامنة باستخدام عميل 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);
}