Guide e Tutorials:indexed | ||||||||||
MAPI (Quarta parte) Le proprietà che caratterizzano i controlli MAPI sono certo più di quelle elencate nell'articolo precedente. In realtà però per creare una semplice applicazione di invio e ricezione della posta quelle già analizzate sono più che sufficienti. E dunque all'interno di questo articolo se ne vedranno poche altre, insieme a tutti i metodi necessari per la gestione della posta in uscita. Il che vuol dire composizione dei messaggi ed invio degli stessi ossia il fine ultimo dell'utilizzo del controllo MAPIMessages. Prima di scrivere un messaggio però bisogna tenere conto di una scelta preliminare: si intende lavorare su un messaggio esistente (ossia rispondere al messaggio, copiarne il testo o l'allegato e così via) oppure si desidera comporne uno nuovo? La differenza è sostanziale perchè nel primo caso è necessario chiamare nuovamente in causa la proprietà MsgIndex che come già abbiamo visto rivela l'indice di ogni singolo messaggio ed ha quindi la funzione di registro di tutti i messaggi. Nel secondo caso al contrario, l'apertura di un nuovo messaggio non comporterà alcuna scelta di messaggi. In seguito si vedrà perchè. Cominciamo a studiare il secondo caso. Come già visto esistono due partizioni della memoria: il buffer di lettura, dove sono contenuti tutti i messaggi in lettura ed il buffer di composizione dove vengono raccolti tutti i messaggi creati per essere inviati. In realtà anche i messaggi in lettura possono andare nel buffer di composizione nel momento in cui si risponde (composizione) ad un messaggio ricevuto (lettura). Ma questo rappresenta il primo caso dei due visti sopra perciò verrà trattato poco più avanti. Quando si crea un nuovo messaggio per la composizione la proprietà MsgIndex che è un valore di tipo Long di intervallo compreso tra -1 e MsgCount-1, passa automaticamente al valore -1. Tale valore indica che quello indicizzato (ossia quello correntemente considerato) è un messaggio in composizione per essere inviato. Quindi, il metodo principale per creare un nuovo messaggio è Compose che viene richiamato nel seguente modo:
Perciò se volessimo riassumere quanto visto finora in un codice che apra una nuova sessione MAPI, controlli la posta in arrivo ed apra un nuovo messaggio:
come si può notare è stata inserita anche una riga di codice che, attraverso una finestra di messaggio, dimostra che l'indice del nuovo messaggio in composizione è proprio -1. L'invio del nuovo messaggio è però un procedimento che necessita di alcuni passaggi ulteriori. Il primo consiste nell'impostare l'indirizzo del destinatario. Questo può essere fatto agevolmente attraverso la proprietà RecipAddress, in questo modo:
Inoltre è possibile inserire anche il nome del destinatario, che si sovrappone all'indirizzo di posta elettronica. Ad esempio se si considera l'indirizzo vbitalia@libero.it ed il nome VBItalia, è possibile sovrapporre nome ed indirizzo in questo modo: VBItalia. Il nome che corrisponde all'indirizzo indicato è impostabile attraverso la proprietà RecipDisplayName:
quindi riassumendo per comporre un nuovo messaggio da scrivere a VBItalia:
Poco prima dell'invio del messaggio è però possibile eseguire un controllo sulla validità dell'indirizzo. Questa operazione viene gestita dall'applicazione di posta elettronica attraverso il metodo ResolveName che cerca nella rubrica se esiste in memoria il nome indicato. Parallelamente, attraverso la proprietà AddressResolveUI si può mostrare una finestra di messaggio che mostri i dettagli dell'operazione (se la proprietà è impostata su True) e dove viene suggerito l'eventuale indirizzo alternativo simile a quello specificato. Nel caso in cui AddressResolveUI sia False o non sia contemplata nel codice, viene visualizzato un messaggio di errore. Naturalmente se si desidera attivare la finestra dei dettagli bisogna richiamare la proprietà AddressResolveUI prima del metodo ResolveName. La finestra visualizzata cambia naturalmente in base all'applicazione che si utilizza. Ecco un esempio: insieme a tale finestra, nel caso in cui si sia tralasciata la gestione degli eventuali errori si otterrà un errore di esecuzione della seguente tipologia:
Adesso che è stato correttamente impostato l'indirizzo del destinatario, si può pensare finalmente al corpo del messaggio e all'oggetto. Quest'ultimo viene definito molto semplicemente dalla proprietà MsgSubject che però è limitata a 64 caratteri. Eccone un possibile utilizzo:
Per quanto riguarda invece il testo vero e proprio del messaggio è necessario utilizzare la proprietà MsgNoteText. Ad esempio:
Infine, terminate queste operazioni preliminari, si può inviare il messaggio. Il metodo da utilizzare è in questo caso Send, che necessita di un parametro di tipo booleano: True se l'invio necessita dell'intervento dell'utente (viene infatti visualizzata una finestra di dialogo di composizione dei messaggi del sistema di posta elettronica) e False se l'invio è automatico. Esempio:
|
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 |