فیلتر کردن پیامها از صندوق پست Exchange با WebDav
فیلتر کردن پیامها با استفاده از WebDav
این ExchangeClient کلاس فراهم میکند ListMessages() متدی که تمام پیامها را از یک صندوق پستی دریافت میکند. برای دریافت تنها پیامهایی که شرطی را برآورده میکنند، از نسخهٔ overloaded استفاده کنید. ListMessages() متدی که MailQuery کلاس به عنوان آرگومان. MailQuery کلاس ویژگیهای مختلفی برای مشخصکردن شرطها، مثلاً تاریخ، موضوع، فرستنده و گیرنده ارائه میدهد. علاوه بر این، API امکان اعمال فیلترهای حساس به حروف بزرگ/کوچک برای بازیابی ایمیلها از صندوق پست را نیز میدهد.
فیلتر کردن پیامها
برای دریافت پیامهای فیلتر شده از یک صندوقپستی:
- به سرور Exchange متصل شوید.
- یک نمونه از MailQuery و ویژگیهای موردنظر را تنظیم کنید.
- متد را فراخوانی کنید ExchangeClient.ListMessages() متد و پاس دهید MailQuery در پارامترها برای دریافت فقط پیامهای فیلترشده.
قطعه کد زیر نشان میدهد چگونه به یک صندوق ایمیل IMAP متصل شوید و پیامهایی که رشته "Newsletter" در موضوع دارند و امروز ارسال شدهاند را دریافت کنید.
فیلتر کردن پیامها بر اساس معیار
نمونههای کد فوق پیامها را بر اساس موضوع ایمیل و تاریخ فیلتر میکنند. ما میتوانیم سایر ویژگیها را نیز فیلتر کنیم. در زیر برخی مثالها برای تنظیم شرایط با استفاده از MailQuery.
معیار فیلتر تاریخ امروز
قطعه کد زیر نشان میدهد چگونه تمام ایمیلها را بر اساس تاریخ امروز فیلتر کنید.
معیار فیلتر بازه زمانی
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه بازه زمانی فیلتر کنید.
معیار فیلتر فرستنده خاص
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه یک فرستنده خاص فیلتر کنید.
معیار فیلتر دامنه خاص
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه یک دامنه خاص فیلتر کنید.
معیار فیلتر گیرنده خاص
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه یک گیرنده خاص فیلتر کنید.
معیار فیلتر بر اساس MessageID
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه MessageID فیلتر کنید.
معیار فیلتر تمام اعلانهای تحویل ایمیل
کد زیر نشان میدهد چگونه تمام ایمیلها را بر پایه تمام اعلانهای تحویل ایمیل فیلتر کنید.
ساخت پرسوجوهای پیچیده
اگر متفاوت ExchangeQueryBuilder ویژگیها در یک بیان جداگانه تنظیم میشوند، همه شرایط مطابقت مییابند. برای مثال، برای دریافت پیامی در یک بازه تاریخی خاص و از یک میزبان مشخص، سه بیان بنویسید:
ترکیب پرسوجوها با AND
قطعه کد زیر نشان میدهد چگونه پرسوجوها را با AND ترکیب کنید.
ترکیب پرسوجوها با OR
ExchangeQueryBuilder ارائه میدهد Or() متد که دو MailQueryنمونهها بهعنوان پارامترها. پیامهایی که هر یک از دو شرط مشخصشده را برآورده میکنند، دریافت میکند. مثال زیر پیامهایی را فیلتر میکند که یا کلمه "test" در موضوع دارند یا "noreply@host.com" بهعنوان فرستنده. قطعه کد زیر نشان میدهد چگونه پرسوجوها را با OR ترکیب کنید.
فیلتر ایمیل حساس به حروف
ایمیلها میتوانند با حساسیت به حروف بزرگ/کوچک فیلتر شوند با مشخص کردن پرچم IgnoreCase در معیار فیلتر همانطور که در قطعه کد زیر نشان داده شده است.