טיפול אסינכרוני בדוא"ל עם לקוח 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);
}