การจัดการอีเมลแบบอะซิงโครนัสด้วย POP3 Client
การดำเนินการแบบอะซิงโครนัสกับ Pop3Client
การทำงานกับข้อความสามารถทำแบบอะซิงโครนัสโดยใช้ Aspose.Email Pop3Client. บทความนี้แสดงวิธีดึงข้อความจากกล่องเมลแบบอะซิงโครนัส รวมถึงการลิสต์ข้อความโดยระบุเงื่อนไขการค้นหาโดยใช้ MailQuery. จะอธิบายแยกต่างหากว่าจะแบ่งการทำงานที่เริ่มจากกล่องจดหมายโดยใช้รูปแบบอะซิงโครนัสแบบงาน (TAP) เมธอด.
ดึงข้อความแบบอะซิงโครนัส
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการดึงข้อความแบบอะซิงโครนัส.
List Messages Asynchronously with MailQuery
นี้ MailQuery class สามารถใช้เพื่อกำหนดเงื่อนไขการค้นหาเพื่อดึงรายการข้อความแบบอะซิงโครนัสตามที่แสดงในตัวอย่างโค้ดต่อไปนี้
การขัดจังหวะเมธอด TAP
ตั้งแต่ .NET Framework 4.5 เป็นต้นไป คุณสามารถใช้เมธอดแบบอะซิงโครนัสที่ทำตามโมเดล TAP ได้ ตัวอย่างโค้ดด้านล่างแสดงวิธีรับข้อมูลเกี่ยวกับกล่องจดหมายโดยใช้เมธอดแบบ task‑based asynchronous pattern ชื่อ 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);
}