Filtrowanie wiadomości ze skrzynki Exchange

Aspose.Email for C++ umożliwia programistom filtrowanie wiadomości w skrzynce Exchange przy użyciu IEWSClient, MailQuery, oraz ExchangeQueryBuilder. Możesz filtrować wiadomości według daty, nadawcy, domeny, MessageID, powiadomień o doręczeniu i wielu innych kryteriów.

Aby pobrać wiadomości z folderu w celu dalszego przetwarzania, IEWSClient. ma następujące metody:

  • ListMessages() - Pobiera wszystkie wiadomości z skrzynki pocztowej.
  • ListMessages() przeciążenie - Zwraca tylko wiadomości spełniające określone warunki. Akceptuje MailQuery który definiuje reguły filtrowania, takie jak słowa kluczowe w temacie, zakresy dat oraz filtrowanie oparte na adresie.

Filtrowanie wiadomości za pomocą IEWSClient

Poniższy przykład kodu demonstruje, jak zapytać i pobrać określone e‑maile z serwera Exchange przy użyciu Exchange Web Services (EWS) i Aspose.Email dla C++. Pokazuje kompletny proces łączenia się z serwerem Exchange (w tym przypadku Office 365), budowania zapytania wyszukiwania w celu znalezienia wiadomości z „Newsletter” w temacie, które nadeszły dzisiaj, wykonywania zapytania w skrzynce odbiorczej, pobierania pasujących wiadomości oraz prawidłowego zarządzania cyklem życia połączenia z obsługą błędów.

  1. Połącz się z serwerem Exchange przy użyciu IEWSClient.
  2. Utwórz MailQuery lub ExchangeQueryBuilder i określ warunki filtrowania.
  3. Wywołaj ListMessages(folderUri, query) aby uzyskać przefiltrowane wyniki.

Filtrowanie wiadomości wg kryteriów

Powyższy przykład kodu filtruje wiadomości na podstawie tematu e‑maila i daty. Możesz także filtrować po innych właściwościach. Poniżej znajdują się przykłady ustawiania warunków przy użyciu MailQuery.

Filtruj według dzisiejszej daty

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć e-maile, które dotarły dzisiaj.

Filtruj według zakresu dat

Poniższy przykład kodu pokaże, jak zbudować zapytanie, aby znaleźć e-maile, które dotarły w ciągu ostatnich 7 dni.

Filtruj według konkretnego nadawcy

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć e-maile od konkretnego nadawcy.

Filtruj według domeny

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć e-maile z określonej domeny.

Filtruj według odbiorcy

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć e-maile wysłane do konkretnego odbiorcy.

Filtruj według MessageID

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć konkretny e‑mail na podstawie jego MessageId.

Filtruj powiadomienia o doręczeniu poczty

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć powiadomienia o doręczeniu poczty (MDN).

Filtruj według rozmiaru wiadomości

Poniższy przykład kodu pokazuje, jak zbudować zapytanie, aby znaleźć e‑maile większe niż określony rozmiar.

Budowanie złożonych zapytań

Podczas używania MailQueryBuilder lub ExchangeQueryBuilder, każda ustawiona właściwość tworzy warunek filtrowania. Jeśli warunki te są definiowane w oddzielnych instrukcjach, są łączone za pomocą logicznego AND, co oznacza, że wszystkie warunki muszą się zgadzać, aby wiadomość została zwrócona.

Umożliwia to programistom tworzenie precyzyjnych filtrów, takich jak:

  • E‑maile w określonym przedziale dat
  • E‑maile z określonej domeny
  • E‑maile spełniające wiele kryteriów jednocześnie

Łącz zapytania przy użyciu AND

Użycie wielu właściwości buildera w kolejności automatycznie tworzy operację AND.

Poniższy przykład pobiera wiadomości, które:

  • Pochodzi z określonej domeny
  • Dotarło przed dzisiaj
  • Dotarło w ciągu ostatnich siedmiu dni

Łącz zapytania przy użyciu OR

Aby dopasować wiadomości spełniające którykolwiek z dwóch warunków, użyj metody Or().

Poniższy przykład pobiera wiadomości, które:

  • Zawierają „test” w temacie, lub
  • Zostały wysłane przez „noreply@host.com”

Filtrowanie e‑maili z rozróżnieniem wielkości liter

Możesz zastosować filtrowanie uwzględniające wielkość liter lub nie, podczas zapytań do skrzynki Exchange. Aby kontrolować to zachowanie, użyj flagi IgnoreCase dostępnej w metodach filtrowania. Przekazanie wartości true włącza dopasowanie bez rozróżniania wielkości liter.

Poniższy przykład filtruje wiadomości, które:

  • Zawierają słowo "Newsletter" w temacie (bez rozróżniania wielkości liter)
  • Dotarło dzisiaj

Stronicowanie w filtrowaniu wiadomości

Podczas pracy z dużymi skrzynkami Exchange, stronicowanie pozwala pobierać wiadomości w mniejszych, łatwiejszych do obsługi partiach. ListMessagesByPage metoda IEWSClient zwraca wyniki strona po stronie w oparciu o określony rozmiar strony i kryteria zapytania.

Poniższy przykład pokazuje, jak:

  1. Zbuduj filtr używając MailQueryBuilder.
  2. Pobieraj wyniki strona po stronie.
  3. Iteruj po wszystkich stronach aż do ostatniej.
  4. Policz całkowitą liczbę pasujących wiadomości.