Invia, leggi e organizza i messaggi su Exchange Server

Recupera le informazioni della casella di posta Exchange con EWS

Aspose.Email consente di recuperare i dettagli della casella di posta da Microsoft Exchange usando il IEWSClient classe. Chiamando il GetMailboxInfo() metodo, il client restituisce un ExchangeMailboxInfo oggetto contenente utili URI di cartelle come Mailbox, Inbox, Drafts e Sent Items.

Per connettersi al server Exchange con Exchange Web Services (EWS), usa il IEWSClient classe. Questa classe usa EWS per connettersi e gestire gli elementi su un server Exchange.

Il seguente frammento di codice dimostra come ottenere informazioni sulla casella di posta usando i servizi web Exchange.

Inviare messaggi email tramite EWS

È possibile inviare email tramite Exchange chiamando il IEWSClient->Send() metodo. Richiede un MailMessage oggetto e lo invia direttamente al server usando EWS.

Il seguente esempio di codice dimostra come inviare un messaggio email HTML tramite un server Exchange usando Exchange Web Services (EWS) con Aspose.Email per C++. Mostra l’intero processo di stabilire una connessione a Exchange, creare un messaggio di posta con mittente, destinatario, oggetto e contenuto HTML, e poi inviare il messaggio usando il metodo Send del client EWS.

Leggere email dalla casella di posta di un altro utente

Alcuni account su server Exchange hanno il diritto di accedere a più caselle di posta, e alcuni utenti hanno più account email sullo stesso server Exchange. In entrambi i casi, gli utenti possono accedere alle caselle di posta di altri utenti con Aspose.Email. L’API fornisce un meccanismo per accedere a cartelle ed email da altre caselle di posta utilizzando il IEWSClient classe. Questa funzionalità può essere ottenuta usando il metodo overload GetMailboxInfo() metodo fornendo l’indirizzo email dell’utente come parametro.

Il seguente frammento di codice mostra come leggere le email utilizzando il IEWSClient classe.

Elencare i messaggi usando EWS

Aspose.Email per C++ consente di recuperare i metadati dei messaggi dalle caselle di posta di Exchange Server tramite il IEWSClient. Usando il basato su EWS ListMessages API, è possibile elencare i messaggi da qualsiasi cartella, sfogliare i metadati dei messaggi e implementare la paginazione per caselle postali di grandi dimensioni.

Elencare i messaggi dalla Posta in arrivo

Usa ListMessages per recuperare le informazioni di base del messaggio, come oggetto, mittente, destinatari e ID del messaggio dalla Posta in arrivo o da qualsiasi cartella.

Il seguente esempio di codice dimostra come elencare e visualizzare le informazioni di base per tutti i messaggi in un server Exchange.

  1. Crea un’istanza di IEWSClient.
  2. Chiama ListMessages con l’URI della cartella di destinazione.
  3. Iterare attraverso ExchangeMessageInfoCollection.

Elencare i messaggi da qualsiasi cartella

ListMessages accetta qualsiasi URI di cartella valido, consentendo di elencare gli elementi da Elementi eliminati, Bozze, Elementi inviati o cartelle personalizzate. Utilizzare il IEWSClient->get_MailboxInfo->xxxFolderUri proprietà per ottenere l’URI di diverse cartelle.

Il seguente esempio di codice dimostra come accedere a diversi URI delle cartelle di Exchange Server e recuperare i messaggi da una cartella specificata.

Paginazione nell’elenco dei messaggi

Per grandi caselle di posta, utilizzare ListMessagesByPage per caricare i messaggi in blocchi più piccoli.

Il seguente esempio di codice dimostra come implementare la paginazione per recuperare un gran numero di messaggi dalla Posta in arrivo di un server Exchange.

  1. Innanzitutto, crea più messaggi di prova sul server.
  2. Quindi, utilizza il ListMessagesByPage metodo per recuperare i messaggi in batch più piccoli (5 messaggi per pagina in questo caso), iterando attraverso tutte le pagine fino a raggiungere l’ultima.
  3. Infine, il codice verifica che tutti i messaggi siano stati recuperati con successo contando il totale degli elementi su tutte le pagine.

Ottenere informazioni sul tipo di messaggio

Usa ExchangeMessageInfo->MessageInfoType per determinare il tipo di messaggio Exchange sottostante (ad esempio, email, richiesta di riunione, ecc.).

Il seguente esempio di codice dimostra come connettersi a un server Exchange e recuperare le informazioni sul tipo di messaggio dalla cartella Elementi eliminati.

Salvare i messaggi usando Exchange Web Services (EWS)

Aspose.Email consente di recuperare messaggi da una casella di posta Exchange Server e salvarli in più formati, come EML, flussi di memoria e MSG. Gli esempi seguenti dimostrano come ottenere informazioni sui messaggi e memorizzarli usando il IEWSClient API.

Salvare i messaggi come file EML

Per salvare i messaggi della casella di posta come file EML:

  1. Crea un IEWSClient istanza usando credenziali valide.
  2. Chiama ListMessages() per recuperare un ExchangeMessagesInfoCollection.
  3. Iterare attraverso la collezione per accedere all’URI unico di ciascun messaggio.
  4. Chiama SaveMessage() per memorizzare ogni messaggio su disco in formato EML.

Il seguente esempio di codice dimostra come salvare messaggi email dalla Posta in arrivo di un server Exchange come file EML individuali localmente usando Aspose.Email per C++.

Salvare i messaggi in un flusso di memoria

Invece di scrivere su disco, è possibile salvare i messaggi in un flusso di memoria—utile per archiviare le email in un database o elaborarle in memoria.

Il seguente esempio di codice dimostra come salvare messaggi email dalla Posta in arrivo di un server Exchange in flussi di memoria.

Salva messaggi in formato MSG

Per salvare i messaggi come MSG:

  1. Recupera il messaggio usando FetchMessage(), che restituisce un MailMessage.
  2. Chiama MailMessage::Save() con le opzioni di salvataggio MSG.

Il seguente esempio di codice dimostra come recuperare e salvare messaggi email dalla Posta in arrivo di un server Exchange come file nel formato Outlook MSG.

Recuperare i dettagli del messaggio tramite URI del messaggio

Quando è disponibile solo l’URI unico di un messaggio, è comunque possibile recuperare l’intero ExchangeMessageInfo oggetti. Il IEWSClient::ListMessages() l’overload accetta un elenco di ID messaggio (URI) e restituisce un ExchangeMessageInfoCollection. Utilizza questa funzione quando memorizzi o ricevi URI di messaggi esternamente e hai bisogno di caricare i metadati (oggetto, mittente, dimensione, ecc.) senza scaricare l’intero messaggio.

Il seguente esempio di codice dimostra come creare più messaggi email su un server Exchange e quindi recuperare le informazioni dei messaggi usando identificatori unici.

Recuperare il contenuto completo del messaggio

ListMessages() restituisce informazioni di riepilogo (oggetto, mittente, ID). Per caricare il contenuto completo del messaggio — corpo, intestazioni, allegati — usa FetchMessage().

Il seguente esempio di codice dimostra come recuperare messaggi completi dalla Posta in arrivo di un server Exchange ed estrarre le informazioni degli allegati:

  1. Crea un IEWSClient istanza.
  2. Chiama ListMessages() per ottenere i metadati di base del messaggio.
  3. Estrarre l’UniqueUri di ciascun messaggio.
  4. Chiama FetchMessage() per recuperare i dettagli completi del messaggio.

Recuperare la dimensione del messaggio (senza scaricare l’intero messaggio)

Aspose.Email fornisce informazioni sulla dimensione del messaggio senza scaricare l’intera email, tramite il ExchangeMessageInfo::Size proprietà.

Questo è utile per:

  • statistiche della casella di posta
  • calcoli di quota
  • filtrare i messaggi di grandi dimensioni prima del download

Il seguente esempio di codice dimostra come elencare e visualizzare i metadati dei messaggi includendo la dimensione dalla Posta in arrivo di un server Exchange.

Scaricare email dalle cartelle pubbliche Exchange

Le cartelle pubbliche Exchange consentono di memorizzare messaggi condivisi tra gli utenti.

Aspose.Email IEWSClient ti consente di eseguire le seguenti operazioni con queste cartelle e i messaggi memorizzati in esse:

  • Elencare le cartelle pubbliche
  • Sfogliare le sottocartelle ricorsivamente
  • Scaricare i messaggi e salvarli (ad es., come file MSG)

Nota: È necessario Microsoft Exchange Server 2007 o successivo, poiché le versioni precedenti non supportano EWS.

Il seguente esempio di codice dimostra come scaricare messaggi da tutte le cartelle pubbliche e dalle loro sottocartelle su un server Exchange in modo ricorsivo, e salvarli localmente come file Outlook MSG.

Spostare i messaggi tra cartelle Exchange

È possibile spostare i messaggi da una cartella Exchange a un’altra usando il IEWSClient::MoveItem metodo. Richiede:

  • L’URI unico del messaggio da spostare.
  • L’URI unico della cartella di destinazione.

Il seguente esempio di codice dimostra come filtrare e spostare specifici messaggi email dalla Posta in arrivo di un server Exchange a un’altra cartella basandosi su criteri di contenuto.

  1. Connettersi a Exchange Server usando credenziali EWS.
  2. Ottenere le informazioni della casella di posta (URI delle cartelle).
  3. Elencare tutti i messaggi dalla Posta in arrivo.
  4. Iterare attraverso ogni messaggio.
  5. Verificare se l’oggetto contiene "process this message".
  6. Spostare i messaggi corrispondenti nella cartella Elementi eliminati.
  7. Restituire conferma per ciascun messaggio spostato.

Eliminare i messaggi da una cartella Exchange

Puoi eliminare i messaggi email da una cartella con l’aiuto del IEWSClient->DeleteMessage metodo. Accetta l’URI unico del messaggio come parametro.

Il seguente esempio di codice dimostra come filtrare ed eliminare specifici messaggi email dalla Posta in arrivo di un server Exchange in base al criterio dell’oggetto.

  1. Iterare attraverso i messaggi della Posta in arrivo.
  2. Elabora i messaggi in base a determinati criteri (in questo esempio, troviamo una parola chiave nell’oggetto del messaggio).
  3. Eliminare i messaggi corrispondenti.

Copiare i messaggi in un’altra cartella Exchange

Usa IEWSClient::CopyItem per duplicare un messaggio in una cartella diversa. La versione overload restituisce l’URI della copia appena creata.

Il seguente esempio di codice dimostra come creare un messaggio email su un server Exchange e copiarlo in un’altra cartella.