Filtruj i sortuj wiadomości w skrzynce Exchange Server przy użyciu EWS

Filtruj i sortuj wiadomości przy użyciu EWS

Ten IEWSClient interfejs zapewnia ListMessages() metoda, która pobiera wszystkie wiadomości ze skrzynki pocztowej. Aby uzyskać tylko wiadomości spełniające określony warunek, użyj przeciążonej ListMessages() metoda, która przyjmuje MailQuery klasę jako argument. Ta MailQuery klasa udostępnia różne właściwości do określania warunków, takich jak data, temat, nadawca i odbiorca. Ponadto API umożliwia stosowanie filtrów wrażliwych na wielkość liter przy pobieraniu e-maili ze skrzynki pocztowej.

Filtrowanie wiadomości według kryteriów

Aby uzyskać filtrowane wiadomości ze skrzynki:

  1. Połącz się z serwerem Exchange.
  2. Utwórz instancję MailQuery i ustawić żądane właściwości.
  3. Wywołaj IEWSClient.ListMessages() metodę i przekazać MailQuery w parametrze, aby otrzymać tylko przefiltrowane wiadomości.

Poniższy fragment kodu pokazuje, jak połączyć się ze skrzynką pocztową IMAP i pobrać wiadomości, które w temacie zawierają ciąg "Newsletter" i zostały wysłane dzisiaj.

Według dzisiejszej daty

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e-maile na podstawie dzisiejszej daty.

Według zakresu dat

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie zakresu dat.

Według nadawcy

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie konkretnego nadawcy.

Według domeny

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie konkretnej domeny.

Według odbiorcy

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie określonego odbiorcy.

Według ID wiadomości

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie MessageID.

Według powiadomień o dostarczeniu poczty

Poniższy fragment kodu pokazuje, jak filtrować wszystkie e‑maile na podstawie powiadomień o dostawie poczty.

Według rozmiaru wiadomości

Budowanie złożonych zapytań

Jeśli różne MailQueryBuilder właściwości są ustawiane w osobnym wyrażeniu, wszystkie warunki są spełnione. Na przykład, aby uzyskać wiadomość w określonym przedziale dat i od konkretnego hosta, napisz trzy instrukcje:

Łączenie zapytań przy użyciu AND

Poniższy fragment kodu pokazuje, jak łączyć zapytania za pomocą AND.

Łączenie zapytań przy użyciu OR

MailQueryBuilder udostępnia Or() metoda przyjmująca dwa MailQuery instancje jako parametry. Pobiera wiadomości pasujące do dowolnego z dwóch określonych warunków. Poniższy przykład filtruje wiadomości, które mają w temacie słowo „test” lub nadawcą jest „noreply@host.com”. Poniższy fragment kodu pokazuje, jak łączyć zapytania za pomocą OR.

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

E‑maile mogą być filtrowane z uwzględnieniem wielkości liter poprzez określenie flagi IgnoreCase w kryteriach filtrowania, jak pokazano w poniższym fragmencie kodu.

Filtrowanie wiadomości z obsługą stronicowania

Sortuj filtrowane wiadomości w kolejności rosnącej/malejącej

Filtrowanie e‑maili może być wspierane przez sortowanie wiadomości w kolejności rosnącej/malejącej. W takim przypadku, OrderBy Metoda jest używana do określenia kolejności, w jakiej wyniki wyszukiwania e‑maili są sortowane przy użyciu klasy MailQueryBuilder. Metoda ta pozwala zdefiniować kryteria sortowania dla zapytania, określając, czy wyniki mają być sortowane rosnąco czy malejąco w oparciu o określoną właściwość.

Metoda przyjmuje parametr ascending, który określa kolejność sortowania dla określonej właściwości. Jeśli parametr ascending ma wartość true, oznacza to, że wyniki wyszukiwania powinny być posortowane rosnąco. Natomiast jeśli parametr ascending ma wartość false, oznacza to, że wyniki wyszukiwania powinny być posortowane malejąco.

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

W powyższym fragmencie kodu metoda OrderBy jest zastosowana dwukrotnie, raz dla tematu, a raz dla daty e‑maili. W wyniku wykonania metody ListMessages z przekazanym żądaniem otrzymamy listę wiadomości, których temat zawiera słowo „Report” i które zostały odebrane w określonej dacie lub później. Jednocześnie wyniki będą posortowane według tematu w kolejności rosnącej. Oznacza to, że wiadomości będą posortowane alfabetycznie od A do Z, zależnie od ich tematu. Dodatkowo wyniki będą posortowane według daty w kolejności malejącej, co oznacza, że posty będą uporządkowane od najnowszych do najstarszych.

Filtruj wiadomości przy użyciu AQS

Dzięki Aspose.Email dla .NET użytkownicy mogą wykorzystać potężne możliwości Advanced Query Syntax (AQS) do filtrowania wiadomości bezpośrednio ze skrzynki Exchange. AQS zapewnia solidny i intuicyjny sposób tworzenia zapytań, które precyzyjnie celują w e‑maile na podstawie określonych kryteriów, takich jak data, nadawca i temat. Aby uzyskać bardziej szczegółowe informacje na temat integracji tego rozwiązania z procesami filtrowania poczty oraz kompletnych przykładów kodu implementującego filtrowanie wiadomości przy użyciu AQS z Aspose.Email dla .NET, odwołaj się do Filtruj wiadomości przy użyciu AQS z skrzynki Exchange artykuł.