فیلتر و مرتب‌سازی پیام‌ها در صندوق‌پست سرور اکسچینج با استفاده از EWS

فیلتر و مرتب‌سازی پیام‌ها با استفاده از EWS

این IEWSClient اینترفیس فراهم می‌کند ListMessages() متدی که تمام پیام‌ها را از یک صندوق پستی دریافت می‌کند. برای دریافت تنها پیام‌هایی که شرطی را برآورده می‌کنند، از نسخهٔ overloaded استفاده کنید. ListMessages() متدی که MailQuery کلاس به عنوان آرگومان.  MailQuery کلاس ویژگی‌های متنوعی برای مشخص کردن شرایط ارائه می‌دهد، برای مثال تاریخ، موضوع، فرستنده و گیرنده. علاوه بر این، API امکان اعمال فیلترهای حساس به حروف بزرگ/کوچک هنگام دریافت ایمیل‌ها از صندوق پستی را نیز فراهم می‌کند.

فیلتر پیام‌ها بر اساس معیار

برای دریافت پیام‌های فیلتر شده از یک صندوق‌پستی:

  1. به سرور Exchange متصل شوید.
  2. یک نمونه از MailQuery و ویژگی‌های موردنظر را تنظیم کنید.
  3. متد را فراخوانی کنید IEWSClient.ListMessages() متد و پاس دهید MailQuery در پارامترها برای دریافت فقط پیام‌های فیلترشده.

قطعه کد زیر نشان می‌دهد چگونه به یک صندوق ایمیل IMAP متصل شوید و پیام‌هایی که رشته "Newsletter" در موضوع دارند و امروز ارسال شده‌اند را دریافت کنید.

بر اساس تاریخ امروز

قطعه کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر اساس تاریخ امروز فیلتر کنید.

بر اساس بازهٔ تاریخی

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه بازه زمانی فیلتر کنید.

بر اساس فرستنده

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه یک فرستنده خاص فیلتر کنید.

بر اساس دامنه

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه یک دامنه خاص فیلتر کنید.

بر اساس گیرنده

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه یک گیرنده خاص فیلتر کنید.

بر اساس شناسه پیام

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه MessageID فیلتر کنید.

بر اساس اعلان‌های تحویل ایمیل

کد زیر نشان می‌دهد چگونه تمام ایمیل‌ها را بر پایه تمام اعلان‌های تحویل ایمیل فیلتر کنید.

بر اساس اندازه پیام

ساخت پرس‌وجوهای پیچیده

اگر متفاوت MailQueryBuilder ویژگی‌ها در یک بیان جداگانه تنظیم می‌شوند، همه شرایط مطابقت می‌یابند. برای مثال، برای دریافت پیامی در یک بازه تاریخی خاص و از یک میزبان مشخص، سه بیان بنویسید:

ترکیب پرس‌وجوها با AND

قطعه کد زیر نشان می‌دهد چگونه پرس‌وجوها را با AND ترکیب کنید.

ترکیب پرس‌وجوها با OR

MailQueryBuilder ارائه می‌دهد Or() متد که دو MailQuery نمونه‌ها به‌عنوان پارامترها. پیام‌هایی که هر یک از دو شرط مشخص‌شده را برآورده می‌کنند، دریافت می‌کند. مثال زیر پیام‌هایی را فیلتر می‌کند که یا کلمه "test" در موضوع دارند یا "noreply@host.com" به‌عنوان فرستنده. قطعه کد زیر نشان می‌دهد چگونه پرس‌وجوها را با OR ترکیب کنید.

فیلتر ایمیل حساس به حروف

ایمیل‌ها می‌توانند با حساسیت به حروف بزرگ/کوچک فیلتر شوند با مشخص کردن پرچم IgnoreCase در معیار فیلتر همان‌طور که در قطعه کد زیر نشان داده شده است.

فیلتر کردن پیام‌ها با پشتیبانی از صفحه‌بندی

مرتب‌سازی پیام‌های فیلتر شده به ترتیب صعودی/نزولی

فیلتر ایمیل می‌تواند با مرتب‌سازی پیام‌ها به ترتیب صعودی/نزولی پشتیبانی شود. در این حالت، OrderBy متد برای مشخص کردن ترتیب مرتب‌سازی نتایج جستجوی ایمیل با استفاده از کلاس MailQueryBuilder استفاده می‌شود. این متد به شما امکان می‌دهد معیارهای مرتب‌سازی برای یک پرس‌وجو تعریف کنید و تعیین کنید که نتایج بر اساس یک ویژگی خاص به ترتیب صعودی یا نزولی مرتب شوند.

این متد پارامتر ascending را می‌پذیرد که ترتیب مرتب‌سازی برای ویژگی مشخص‌شده را تعیین می‌کند. اگر مقدار ascending true باشد، به این معنی است که نتایج جستجو باید به ترتیب صعودی مرتب شوند. برعکس، اگر مقدار ascending false باشد، به این معنی است که نتایج جستجو باید به ترتیب نزولی مرتب شوند.

MailQueryBuilder builder = new MailQueryBuilder();
builder.Subject.Contains("Report");
builder.InternalDate.Since(new DateTime(2020, 1, 1));
builder.Subject.OrderBy(true); // sort the subject ascending
builder.InternalDate.OrderBy(false); // sort the date descending

MailQuery query = builder.GetQuery();

// Get list of messages
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);

در قطعه کد بالا، متد OrderBy دو بار اعمال می‌شود، یک بار برای موضوع و یک بار برای تاریخ ایمیل‌ها. با اجرای متد ListMessages همراه با درخواست ارسال‌شده، لیستی از پیام‌ها دریافت می‌کنیم که موضوع آنها شامل واژهٔ "Report" بوده و در تاریخ مشخص یا پس از آن دریافت شده‌اند. همزمان، نتایج بر اساس موضوع به صورت صعودی مرتب می‌شوند؛ به این معنا که پیام‌ها بر حسب الفبا از A تا Z بر اساس موضوعشان مرتب می‌شوند. همچنین، نتایج بر اساس تاریخ به صورت نزولی مرتب می‌شوند؛ به این معنی که پست‌ها از جدیدترین به قدیمی‌ترین ترتیب می‌یابند.

فیلتر کردن پیام‌ها با استفاده از AQS

با Aspose.Email برای .NET، کاربران می‌توانند از قابلیت‌های قدرتمند Advanced Query Syntax (AQS) برای فیلتر کردن مستقیم پیام‌ها از صندوق‌پست اکسچینج استفاده کنند. AQS روشی مستحکم و بصری برای ساخت پرس‌و‌جوهایی فراهم می‌کند که می‌توانند به‌دقت ایمیل‌ها را بر اساس معیارهای خاصی مانند تاریخ، فرستنده و موضوع هدف قرار دهند. برای دریافت جزئیات بیشتر دربارهٔ ادغام آن در فرآیندهای فیلتر ایمیل شما و نمونه‌های کد جامع برای پیاده‌سازی فیلتر پیام با استفاده از AQS در Aspose.Email برای .NET، لطفاً به فیلتر پیام‌ها با AQS از صندوق پست Exchange مقاله.