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:
- Połącz się z serwerem Exchange.
- Utwórz instancję MailQuery i ustawić żądane właściwości.
- 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ł.