EWS Kullanarak Exchange Server Posta Kutusundaki Mesajları Filtreleme ve Sıralama

EWS Kullanarak Mesajları Filtreleme ve Sıralama

Bu IEWSClient arayüz sağlar ListMessages() bir posta kutusundaki tüm mesajları alan metod. Belirli bir koşulu karşılayan yalnızca mesajları almak için aşırı yüklenmiş olanı kullanın. ListMessages() alan metod MailQuery sınıfı bir argüman olarak.  MailQuery sınıf, tarih, konu, gönderen ve alıcı gibi koşulları belirtmek için çeşitli özellikler sağlar. Ayrıca, API posta kutusundan e-posta alırken duyarlılık filtresi uygulamaya da izin verir.

Mesajları Kriterlere Göre Filtrele

Bir posta kutusundan filtrelenmiş mesajları almak için:

  1. Exchange sunucusuna bağlan.
  2. Bir örnek oluştur MailQuery ve istenen özellikleri ayarlayın.
  3. Şuğu çağırın IEWSClient.ListMessages() method ve geçirin MailQuery parametrelerde yalnızca filtrelenmiş mesajları almak için.

Aşağıdaki kod parçacığı, bir IMAP posta kutusuna nasıl bağlanılacağını ve konu satırında "Newsletter" dizesi bulunan ve bugün gönderilen mesajları nasıl alacağınızı gösterir.

Bugünün Tarihiyle

Aşağıdaki kod parçacığı, bugünün tarihine göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Tarih Aralığıyla

Aşağıdaki kod snippet’i, tarih aralığına göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Gönderene Göre

Aşağıdaki kod snippet’i, belirli bir gönderene göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Alana Göre

Aşağıdaki kod snippet’i, belirli bir domaine göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Alıcıya Göre

Aşağıdaki kod snippet’i, belirli bir alıcıya göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Mesaj Kimliğine Göre

Aşağıdaki kod snippet’i, MessageID temelinde tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Posta Teslim Bildirimlerine Göre

Aşağıdaki kod snippet’i, tüm posta teslim bildirimlerine göre tüm e-postaları nasıl filtreleyeceğinizi gösterir.

Mesaj Boyutuna Göre

Karmaşık Sorgular Oluşturma

Farklı ise MailQueryBuilder özellikler ayrı bir ifadede ayarlandığında, tüm koşullar eşleşir. Örneğin, belirli bir tarih aralığında ve belirli bir sunucudan mesaj almak için üç ifade yazın:

Sorguları AND ile Birleştirme

Aşağıdaki kod bölümü, Sorguları AND ile birleştirmenin nasıl yapılacağını gösterir.

Sorguları OR ile Birleştirme

MailQueryBuilder sağlar Or() iki … alan yöntemi MailQuery örnek parametreler olarak. Belirtilen iki koşuldan birine uyan mesajları alır. Aşağıdaki örnek, konu içinde “test” kelimesi olan ya da gönderen olarak “noreply@host.com” bulunan mesajları filtreler. Aşağıdaki kod parçacığı, sorguları OR ile nasıl birleştireceğinizi gösterir.

Büyük/Küçük Harf Duyarlı E-posta Filtreleme

Aşağıdaki kod bölümünde gösterildiği gibi, filtre kriterinde IgnoreCase bayrağını belirterek e-postalar büyük/küçük harfe duyarlılık bazında filtrelenebilir.

Sayfalama Desteğiyle Mesajları Filtrele

Filtrelenmiş Mesajları Artan/Azalan Sırada Sırala

E-posta filtreleme, mesajların artan/azalan sırada sıralanmasıyla desteklenebilir. Bu durumda, OrderBy metod, MailQueryBuilder sınıfı kullanılarak bir e-posta arama sonucunun sıralama düzenini belirtmek için kullanılır. Bu metod, bir arama sorgusu için sıralama kriterleri tanımlamanızı sağlar; sonuçların belirli bir özelliğe göre artan ya da azalan sırada sıralanıp sıralanmayacağını belirler.

Metod, belirtilen özelliğin sıralama düzenini belirleyen ascending parametresini kabul eder. Ascending parametresi true ise, arama sonuçları artan sırada sıralanmalıdır. Aksine, ascending parametresi false ise, arama sonuçları azalan sırada sıralanmalıdır.

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);

Yukarıdaki kod snippet’inde, OrderBy metodu iki kez uygulanmıştır; bir kez konu için, bir kez de e-postaların tarihi için. Geçilen istekle ListMessages metodunu çalıştırmanın sonucu olarak, konu satırında "Report" kelimesi geçen ve belirtilen tarihten itibaren alınan mesajların bir listesini elde ederiz. Aynı zamanda, sonuçlar konuya göre artan sırada sıralanır. Bu, mesajların konu başlıklarına göre A’dan Z’ye alfabetik olarak sıralanacağı anlamına gelir. Ayrıca, sonuçlar tarihine göre azalan sırada sıralanır. Bu da gönderilerin en yenisinden en eskiye doğru sıralanacağı anlamına gelir.

AQS Kullanarak Mesajları Filtrele

Aspose.Email for .NET ile kullanıcılar, Advanced Query Syntax (AQS) sayesinde mesajları doğrudan bir Exchange posta kutusundan filtreleme konusunda güçlü yeteneklerden yararlanabilir. AQS, tarih, gönderici ve konu gibi belirli kriterlere dayalı olarak e-postaları kesin bir şekilde hedefleyen sağlam ve sezgisel bir sorgu oluşturma yöntemi sunar. E-posta filtreleme süreçlerinize entegrasyonu ve Aspose.Email for .NET ile AQS kullanarak mesaj filtresi uygulama konusunda kapsamlı kod örnekleri için lütfen şu kaynağa bakın: Exchange Mailbox’tan AQS ile Mesajları Filtrele makale.