Wysyłaj, odczytuj i organizuj wiadomości na serwerze Exchange

Pobierz informacje o skrzynce Exchange przy użyciu EWS

Aspose.Email umożliwia pobranie szczegółów skrzynki pocztowej z Microsoft Exchange przy użyciu IEWSClient klasę. Wywołując GetMailboxInfo() metoda, klient zwraca ExchangeMailboxInfo obiekt zawierający przydatne URI folderów, takich jak Mailbox, Inbox, Drafts i Sent Items.

Aby połączyć się z serwerem Exchange przy użyciu Exchange Web Services (EWS), użyj IEWSClient klasa. Ta klasa używa EWS do łączenia się i zarządzania elementami na serwerze Exchange.

Poniższy fragment kodu demonstruje, jak pobrać informacje o skrzynce przy użyciu usług Exchange Web Services.

Wysyłanie wiadomości e‑mail za pomocą EWS

Możesz wysyłać e‑maile przez Exchange, wywołując IEWSClient->Send() metoda. Przyjmuje MailMessage obiekt i przesyła go bezpośrednio przez serwer przy użyciu EWS.

Poniższy przykład kodu pokazuje, jak wysłać wiadomość e‑mail w formacie HTML przez serwer Exchange przy użyciu Exchange Web Services (EWS) i Aspose.Email dla C++. Przedstawia pełny proces nawiązania połączenia z Exchange, utworzenia wiadomości e‑mail z nadawcą, odbiorcą, tematem i treścią HTML, a następnie wysłania wiadomości przy użyciu metody Send klienta EWS.

Odczytywanie e‑maili z skrzynki pocztowej innego użytkownika

Niektóre konta na serwerach Exchange mają prawo dostępu do wielu skrzynek pocztowych, a niektórzy użytkownicy mają wiele kont e‑mail na tym samym serwerze Exchange. W obu przypadkach użytkownicy mogą uzyskać dostęp do skrzynek pocztowych innych użytkowników przy pomocy Aspose.Email. API zapewnia mechanizm dostępu do folderów i e‑maili z innych skrzynek pocztowych przy użyciu IEWSClient klasa. Tą funkcjonalność można uzyskać przy użyciu przeładowanej GetMailboxInfo() metoda i podanie adresu e‑mail użytkownika jako parametru.

Poniższy fragment kodu pokazuje, jak odczytywać e‑maile przy użyciu IEWSClient klasa.

Wyświetlanie wiadomości przy użyciu EWS

Aspose.Email dla C++ pozwala pobierać metadane wiadomości ze skrzynek pocztowych serwera Exchange poprzez IEWSClient. Używając opartego na EWS ListMessages Za pomocą API możesz wyświetlać wiadomości z dowolnego folderu, przeglądać metadane wiadomości i implementować stronicowanie dla dużych skrzynek pocztowych.

Wyświetl wiadomości z folderu Odebrane

Użyj ListMessages aby pobrać podstawowe informacje o wiadomości, takie jak temat, nadawca, odbiorcy i identyfikator wiadomości, z folderu Odebrane lub dowolnego folderu.

Poniższy przykład kodu demonstruje, jak wypisać i wyświetlić podstawowe informacje o wszystkich wiadomościach na serwerze Exchange.

  1. Utwórz instancję IEWSClient.
  2. Wywołaj ListMessages z docelowym identyfikatorem URI folderu.
  3. Iteruj po ExchangeMessageInfoCollection.

Wyświetl wiadomości z dowolnego folderu

ListMessages akceptuje dowolny prawidłowy URI folderu, umożliwiając wyświetlanie elementów z folderów Elementy usunięte, Szkice, Elementy wysłane lub folderów niestandardowych. Użyj IEWSClient->get_MailboxInfo->xxxFolderUri właściwość, aby uzyskać URI różnych folderów.

Poniższy przykład kodu pokazuje, jak uzyskać dostęp do różnych identyfikatorów URI folderów serwera Exchange i pobrać wiadomości z określonego folderu.

Stronicowanie w wyświetlaniu wiadomości

W przypadku dużych skrzynek pocztowych użyj ListMessagesByPage aby ładować wiadomości w mniejszych blokach.

Poniższy przykład kodu demonstruje, jak zaimplementować stronicowanie w celu pobierania dużej liczby wiadomości z folderu Odebrane serwera Exchange.

  1. Najpierw tworzy wiele wiadomości testowych na serwerze.
  2. Następnie używa ListMessagesByPage metoda do pobierania wiadomości w mniejszych partiach (w tym przypadku 5 wiadomości na stronę), iterując przez wszystkie strony aż do osiągnięcia ostatniej strony.
  3. Na koniec kod weryfikuje, że wszystkie wiadomości zostały pomyślnie pobrane, licząc łączną liczbę elementów we wszystkich stronach.

Pobierz informacje o typie wiadomości

Użyj ExchangeMessageInfo->MessageInfoType aby określić podstawowy typ wiadomości Exchange (np. e‑mail, żądanie spotkania itp.).

Poniższy przykład kodu pokazuje, jak połączyć się z serwerem Exchange i pobrać informację o typie wiadomości z folderu Elementy usunięte.

Zapisz wiadomości przy użyciu Exchange Web Services (EWS)

Aspose.Email umożliwia pobieranie wiadomości ze skrzynki pocztowej serwera Exchange i zapisywanie ich w wielu formatach, takich jak EML, strumienie pamięci oraz MSG. Poniższe przykłady pokazują, jak pobrać informacje o wiadomości i przechowywać wiadomości przy użyciu IEWSClient API.

Zapisz wiadomości jako pliki EML

Aby zapisać wiadomości ze skrzynki pocztowej jako pliki EML:

  1. Utwórz IEWSClient instancję przy użyciu prawidłowych poświadczeń.
  2. Wywołaj ListMessages() aby pobrać ExchangeMessagesInfoCollection.
  3. Iteruj po kolekcji, aby uzyskać unikalny URI każdej wiadomości.
  4. Wywołaj SaveMessage() aby przechowywać każdą wiadomość na dysku w formacie EML.

Poniższy przykład kodu demonstruje, jak zapisać wiadomości e‑mail z folderu Odebrane serwera Exchange jako osobne pliki EML lokalnie przy użyciu Aspose.Email dla C++.

Zapisz wiadomości do strumienia pamięci

Zamiast zapisywać na dysk, możesz zapisać wiadomości w strumieniu pamięci — przydatne do przechowywania e‑maili w bazie danych lub przetwarzania ich w pamięci.

Poniższy przykład kodu demonstruje, jak zapisać wiadomości e‑mail z folderu Odebrane serwera Exchange do strumieni pamięci.

Zapisz wiadomości w formacie MSG

Aby zapisać wiadomości jako MSG:

  1. Pobierz wiadomość przy użyciu FetchMessage(), który zwraca MailMessage.
  2. Wywołaj MailMessage::Save() z opcjami zapisu MSG.

Poniższy przykład kodu demonstruje, jak pobrać i zapisać wiadomości e‑mail z folderu Odebrane serwera Exchange jako pliki w formacie Outlook MSG.

Pobierz szczegóły wiadomości za pomocą URI wiadomości

Gdy dostępny jest tylko unikalny URI wiadomości, możesz nadal pobrać pełną ExchangeMessageInfo obiekty. The IEWSClient::ListMessages() przeciążenie akceptuje listę identyfikatorów wiadomości (URI) i zwraca ExchangeMessageInfoCollection. Użyj tej funkcji, gdy przechowujesz lub otrzymujesz URI wiadomości zewnętrznie i potrzebujesz załadować metadane (temat, nadawca, rozmiar itp.) bez pobierania pełnych wiadomości.

Poniższy przykład kodu demonstruje, jak utworzyć wiele wiadomości e‑mail na serwerze Exchange, a następnie pobrać ich informacje przy użyciu unikalnych identyfikatorów.

Pobierz pełną treść wiadomości

ListMessages() zwraca informacje podsumowujące (temat, nadawca, identyfikatory). Aby załadować pełną treść wiadomości — treść, nagłówki, załączniki — użyj FetchMessage().

Poniższy przykład kodu demonstruje, jak pobrać pełne wiadomości z folderu Odebrane serwera Exchange i wyodrębnić informacje o załącznikach:

  1. Utwórz IEWSClient instancję.
  2. Wywołaj ListMessages() aby uzyskać podstawowe metadane wiadomości.
  3. Wyodrębnij unikalny URI każdej wiadomości.
  4. Wywołaj FetchMessage() aby pobrać pełne szczegóły wiadomości.

Pobierz rozmiar wiadomości (bez pobierania pełnej wiadomości)

Aspose.Email dostarcza informacje o rozmiarze wiadomości bez pobierania całego e‑maila, za pośrednictwem ExchangeMessageInfo::Size właściwość.

Jest to przydatne do:

  • statystyki skrzynki pocztowej
  • obliczenia limitów
  • filtrowanie dużych wiadomości przed pobraniem

Poniższy przykład kodu demonstruje, jak wyświetlić i pokazać metadane wiadomości, w tym rozmiar, z folderu Odebrane serwera Exchange.

Pobierz e‑maile z publicznych folderów Exchange

Foldery publiczne Exchange umożliwiają przechowywanie wspólnych wiadomości między użytkownikami.

Aspose.Email IEWSClient pozwala wykonać następujące operacje na tych folderach i przechowywanych w nich wiadomościach:

  • Wyświetl foldery publiczne
  • Przeglądaj podfoldery rekurencyjnie
  • Pobierz wiadomości i zapisz je (np. jako pliki MSG)

Uwaga: Wymagany jest Microsoft Exchange Server 2007 lub nowszy, ponieważ wcześniejsze wersje nie obsługują EWS.

Poniższy przykład kodu demonstruje, jak rekurencyjnie pobrać wiadomości ze wszystkich folderów publicznych i ich podfolderów na serwerze Exchange oraz zapisać je lokalnie jako pliki Outlook MSG.

Przenoszenie wiadomości między folderami Exchange

Możesz przenosić wiadomości z jednego folderu Exchange do drugiego przy użyciu IEWSClient::MoveItem metoda. Wymaga:

  • Unikalny URI wiadomości do przeniesienia.
  • Unikalny URI folderu docelowego.

Poniższy przykład kodu demonstruje, jak filtrować i przenosić określone wiadomości e‑mail z folderu Odebrane serwera Exchange do innego folderu na podstawie kryteriów zawartości.

  1. Połącz się z serwerem Exchange przy użyciu poświadczeń EWS.
  2. Pobierz informacje o skrzynce pocztowej (URI folderów).
  3. Wyświetl wszystkie wiadomości z folderu Odebrane.
  4. Iteruj przez każdą wiadomość.
  5. Sprawdź, czy temat zawiera "process this message".
  6. Przenieś pasujące wiadomości do folderu Elementy usunięte.
  7. Wyświetl potwierdzenie dla każdej przeniesionej wiadomości.

Usuń wiadomości z folderu Exchange

Możesz usunąć wiadomości e-mail z folderu przy pomocy IEWSClient->DeleteMessage metoda. Przyjmuje unikalny URI wiadomości jako parametr.

Poniższy przykład kodu demonstruje, jak filtrować i usuwać określone wiadomości e‑mail z folderu Odebrane serwera Exchange na podstawie kryteriów tematu.

  1. Iteruj wiadomości w folderze Odebrane.
  2. Przetwarzaj wiadomości na podstawie pewnych kryteriów (w tym przykładzie szukamy słowa kluczowego w temacie wiadomości).
  3. Usuń pasujące wiadomości.

Kopiuj wiadomości do innego folderu Exchange

Użyj IEWSClient::CopyItem aby zduplikować wiadomość w innym folderze. Przeciążona wersja zwraca URI nowo utworzonej kopii.

Poniższy przykład kodu demonstruje, jak utworzyć wiadomość e‑mail na serwerze Exchange i skopiować ją do innego folderu.