Guide e Tutorials:indexed | |||||||||||||
MAPI (Terza parte) Adesso che sono stati recuperati tutti i messaggi della posta in arrivo, sappiamo come estrarre un messaggio particolare: con la proprietà MsgIndex. Una volta recuperato un messaggio particolare (ad esempio il 50° su 100 messaggi nella casella della posta in arrivo), sono possibili una serie di operazioni per dare una forma allo stesso. La prima cosa è recuperarne l'oggetto. Questo consente di trattare ogni singolo messaggio non più come un semplice numero (l'indice del messaggio rappresentato dalla proprietà MsgIndex, ma in base alle informazioni in esso contenuto. Possiamo pensare infatti di includere nel progetto un controllo ListBox nel quale inserire tutti gli oggetti dei messaggi. Per fare ciò dovremo utilizzare la proprietà MsgSubject del controllo MAPIMessages che individua appunto l'oggetto del messaggio. Quindi, per ottenere il risultato di cui si parlava poco sopra:
E' importante comprendere che l'elemento che varia è l'indice del messaggio. In base ad esso, cioè al messaggio correntemente considerato, l'oggetto sarà diverso. Altra cosa da considerare, ma che in parte avevamo già trattato negli articoli precedenti è la corrispondenza degli indici del controllo MAPIMessages e ListBox. Il primo elemento elencato in essi ha indice 0, quindi è comprensibile che l'n-esimo elemento abbia un indice pari a n-1. Ciò che abbiamo visto per l'oggetto dei messaggi può essere facilmente applicato anche ai mittenti dei messaggi della posta. Se vogliamo elencare il mittente di ogni messaggio nella ListBox, basterà sostituire alla proprietà MsgSubject la proprietà MsgOrigDisplayName,nel seguente modo:
Naturalmente i blocchi di codice visti sopra hanno un significato (e quindi non restituiscono un messaggio d'errore) solamente se i messaggi nella casella della posta in arrivo sono uno o più. Per questo si può ipotizzare la necessità di un controllo preliminare della presenza di almeno un messaggio. Il codice qua sotto ha proprio tale scopo:
Viene cioè utilizzata la proprietà MsgCount per il conto totale dei messaggi. Tale proprietà era già stata analizzata nell'articolo precedente. Unitamente alle proprietà finora viste, nel campo della gestione dei messaggi in lettura, esistono una serie di altre proprietà utili che permettono in pochi semplici passaggi di ricreare un'applicazione di gestione della posta elettronica. La prima proprietà degna di nota è MsgDateReceived che non va molto oltre quelle appena analizzate: semplicemente recupera le informazioni relative alla data di arrivo del messaggio. La proprietà è richiamabile nel seguente modo:
Altra proprietà è MsgOrigDisplayName che recupera invece le informazioni relative al mittente che ha inviato la lettera. Per richiamare tale proprietà è sufficiente la seguente linea di codice:
Andando oltre troviamo la possibilità di determinare se in precedenza il messaggio è già stato letto o meno, attraverso la proprietà MsgRead che restituisce un valore di tipo booleano: True in caso affermativo e False se il messaggio non è mai stato aperto. Ecco come utilizzare la proprietà:
Ogni utente di un account di posta elettronica ha inoltre la facoltà di richiedere una ricevuta di ritorno del messaggio inviato. Per determinare se il mittente si è avvalso di tale opportunità si usa la proprietà MsgReceiptRequested. In pratica la proprietà si richiama in questo modo:
Inoltre esiste la proprietà MsgOrigAddress che determina l'indirizzo di provenienza del messaggio ossia l'indirizzo del mittente:
e la possibilità di recuperare la stringa d'identificazione assegnata al messaggio correntemente considerato. Questo è possibile attraverso la proprietà MsgID:
In più si può determinare il valore di identificazione del thread di conversazione relativo al messaggio indicizzato corrente attraverso la proprietà MsgConversationID:
Infine le ultime due proprietà: la prima, MsgSent, consente di determinare se il messaggio indicizzato corrente è già stato inviato al server della posta:
mentre MsgType specifica il tipo di messaggio indicizzato:
Per quanto riguarda i tipi di messaggi, nell'articolo precedente abbiamo già visto che non è particolarmente frequente la gestione di messaggi diversi da quelli standard, motivo per il quale avevamo potuto sorvolare sulla priorietà FetchMsgType. |
Archivio:ndexed | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |