Accedi e gestisci le proprietà MAPI di Outlook

MAPI properties sono elementi di metadati usati nei messaggi di Microsoft Outlook, definendo attributi come mittente, destinatario, oggetto, allegati e dati personalizzati.

Aspose.Email for C++ consente agli sviluppatori di accedere, modificare e rimuovere queste proprietà programmaticamente in MapiMessage oggetti, allegati e proprietà con nome.

Il MapiProperty la classe rappresenta una proprietà MAPI, che contiene:

  • Name – L’identificatore stringa della proprietà.
  • Tag – Un identificatore numerico usato per fare riferimento alla proprietà.
  • Data – Un array di byte che rappresenta il valore della proprietà.

Leggi proprietà MAPI

Aspose.Email consente di leggere le proprietà MAPI usando i tag delle proprietà.

Il seguente esempio di codice dimostra come leggere e visualizzare la proprietà dell’oggetto da un file messaggio MAPI (.msg).

  1. Ottieni il percorso della directory dove sono memorizzati i file messaggi Outlook.
  2. Carica il file messaggio Outlook ("message.msg") in un MapiMessage oggetto.
  3. Accedi alla collezione di proprietà MAPI del messaggio.
  4. Prova a recuperare la proprietà dell’oggetto usando PR_SUBJECT (ANSI) tag.
  5. Se la proprietà dell’oggetto ANSI non viene trovata, prova a recuperare la proprietà dell’oggetto Unicode usando PR_SUBJECT_W.
  6. Se la proprietà dell’oggetto esiste, stampa il suo valore stringa sulla console.

Imposta le proprietà MAPI

Le proprietà MAPI possono essere impostate per messaggi o destinatari per definire attributi personalizzati, tipo di email o stato di sincronizzazione.

Il seguente esempio di codice mostra come creare un messaggio MAPI, impostare più proprietà MAPI personalizzate inclusi i dettagli di mittente e destinatario, i flag del messaggio e il tempo di modifica, quindi salvare il messaggio in un file.

Nota: L’helper ConvertDateTime() converte System::DateTime in un array di byte filetime compatibile MAPI per le proprietà data/ora nel modo seguente:

int64_t filetime = t.ToFileTime();

System::ArrayPtr<uint8_t> d = System::MakeArray<uint8_t>(8, 0);

d[0] = (uint8_t)(filetime & 0xFF);

d[1] = (uint8_t)((filetime & 0xFF00) >> 8);

d[2] = (uint8_t)((filetime & 0xFF0000) >> 16);

d[3] = (uint8_t)((filetime & 0xFF000000) >> 24);

d[4] = (uint8_t)((filetime & 0xFF00000000) >> 32);

d[5] = (uint8_t)((filetime & 0xFF0000000000) >> 40);

d[6] = (uint8_t)((filetime & 0xFF000000000000) >> 48);

d[7] = (uint8_t)(((uint64_t)filetime & 0xFF00000000000000) >> 56);

Leggere proprietà MAPI nominate

Le proprietà MAPI con nome sono proprietà personalizzate aggiunte da utenti o applicazioni.

Aspose.Email consente la lettura di queste proprietà da messaggi e allegati.

Lettura di proprietà MAPI con nome da file MSG

Il seguente esempio di codice mostra come caricare un file di messaggio MAPI, recuperare tutte le sue proprietà MAPI con nome e iterare su di esse per trovare e visualizzare i valori di proprietà con nome specifiche ("TEST" e "MYPROP"). Dimostra come accedere a proprietà personalizzate o estese in un messaggio MAPI enumerando la collezione di proprietà e processando condizionalmente le proprietà in base ai loro identificatori di nome.

Accesso a proprietà MAPI con nome negli allegati

Le proprietà MAPI con nome negli allegati possono essere recuperate in modo simile:

Rimozione di proprietà MAPI

È possibile rimuovere sia le proprietà MAPI standard che quelle con nome da messaggi o allegati come mostrato nell’esempio di codice seguente: