Community
Articoli
Software
Utility
Contatti

Creiamo il nostro client di posta personalizzato
"Salve a tutti, Mi chiamo Paolo e vi chiedo di avere pazienza ma è il mio primo articolo. Oggi parleremo di POSTA ELETTRONICA. In informatica come saprete esistono infiniti sistemi per raggiungere lo stesso risultato. Per l’e-mail i principali sistemi che si possono utilizzare sono : 1) l’oggetto WINSOCK in varie salse. 2) la creazione di un oggetto Outlook.Application 3) l’utilizzo di un oggetto mapi Si sceglie che cosa sfruttare a seconda dell’utilizzo e del risultato voluto."

Categoria: Programmazione »» Visual Basic

A cura di: Paolo Antoniani

Pubblicato il: martedì 22 agosto 2006



Salve a tutti, Mi chiamo Paolo e vi chiedo di avere pazienza ma è il mio primo articolo.
Oggi parleremo di POSTA ELETTRONICA.
In informatica come saprete esistono infiniti sistemi per raggiungere lo stesso risultato.
Per l’e-mail i principali sistemi che si possono utilizzare sono :
1) l’oggetto WINSOCK in varie salse.
2) la creazione di un oggetto Outlook.Application
3) l’utilizzo di un oggetto mapi
Si sceglie che cosa sfruttare a seconda dell’utilizzo e del risultato voluto.
Noi utilizzeremo l’oggetto MAPI sicuramente il più semplice e il più completo tra tutti. Purtroppo nelle ultime versioni di outlook ad alcune richieste inviate viene visualizzata una finestra che chiede consenso all’accesso ai dati di outlook .
Ecco di seguito la finestra che appare su outlook 2003.
Prima di tutto da progetto inseriamo il componente MAPI di Microsoft, come visualizzato in finestra.
Questo è il metodo più semplice per inserire un ocx o una dll ma si può anche inserirla direttamente nel programma con riga di comando.
Sulla nostra maschera inseriamo i due nuovi componenti che sono apparsi come si vede in figura

A questo punto abbiamo tutto quello che ci serve per creare il nostro outlook personale.
Ma cosa vogliamo fare?
1) leggere tutti i messaggi di posta in arrivo e visualizzarli
2) aprire e visualizzare un messaggio
3) creare un nuovo messaggio
4) accedere alla rubrica memorizzata all’interno di outlook
leggere tutti i messaggi di posta in arrivo e visualizzarli
MAPISession1.SignOn ‘ attivo la sezione
lstMail.Clear ( oppure se vogliamo visualizzare più campi utilizzeremo una
Flex )
MAPIMessages1.FetchUnreadOnly = 0 ‘ oppure 1 tutti i messaggio o solo quelli
ancora da leggere
MAPIMessages1.Fetch ‘ Mi collego all’outlook e leggo le mail
For ContaMail = 1 ToMAPIMessages1.MsgCount ‘contiene il numero di messaggi da
‘leggere
MAPIMessages1.MsgIndex = Contamail - 1
If MAPIMessages1.MsgRead = False Then
lstMail.AddItem MAPIMessages1.MsgSubject ‘ contiene il testo oggetto
‘ della mail
‘ se voglio aggiungere dei campi in visualizzazione posso aggiungere …:
‘ MAPIMessages1.MsgOrigAddress ‘ contiene l’indirizzo email
‘ di chi ha spedito la mail
‘ MAPIMessages1.MsgOrigDisplayName ‘ contiene il nome
‘ visualizzato di chi ha spedito la mail
‘ MAPIMessages1.MsgNoteText ‘contiene il testo del messaggio
‘ MAPIMessages1.MsgDateReceived ‘contiene la data in cui ho
‘ ricevuto il messaggio
‘ MAPIMessages1.AttachmentCount ‘contiene il numero di
‘ allegati del messaggio
‘ se voglio utilizzare una flex allora scriverò :
‘ Flex.AddItem campo1 & vbTab & campo2 . . . . . .
Else
lstMail.AddItem MAPIMessages1.MsgSubject
End If
Next
Con queste poche righe si può creare la nostra pagina visualizzazione delle mail in posta in arrivo
Per eliminare una mail
MAPIMessages1.Delete MAPIMessages1.MsgIndex = -1 ‘ Cancello la mail selezionata
Possiamo utilizzare l’indice della listmail per sapere che mail è selezionata. Il –1 serve perché sono sfasate di 1
Per spedire una mail
Proviamo ora a spedire una mail, naturalmente dobbiamo cerare una maschera con i campi interessati
Per esempio: (il minimo indispensabile è)
A
Oggetto
Corpo del messaggio
Una list o flex contenente gli allegati
E un pulsante send
Una volta creata la maschera con l’aspetto che più ci aggrada dobbiamo spedire il messaggio utilizzando il tasto send. Vediamo un po’ cosa contiene il pulsante e quali sono i comandi per spedire il nostro messaggio.
frmMain.MAPIMessages1.Compose ‘ compongo il messaggio
frmMain.MAPIMessages1.RecipDisplayName = txtA.Text ‘ A chi lo mando
frmMain.MAPIMessages1.MsgSubject = txtOggetto.Text ‘ Oggetto
frmMain.MAPIMessages1.MsgNoteText = txtTesto.Text ‘ testo Se vogliamo testi lungi dobbiamo utilizzare dei
depositi diversi dal label come per esempio il
frmMain.MAPIMessages1.AddressResolveUI = True
frmMain.MAPIMessages1.ResolveName
If Attachments.ListCount <> 0 Then ‘ Se ho un allegato (ma con un ciclo posso fare tanti) lo allego
frmMain.MAPIMessages1.AttachmentPathName = Attachments.List(Attachments.ListIndex)
End If
frmMain.MAPIMessages1.Send ‘ spedisco
Creo un listbox contenente i nomi dei file da allegare
Per allegare un file potremmo utilizzare un commondialog lanciato attraverso un icona tipo
Tenete presente che all’uscita del commondialog c’è da controllare se l’allegato è già presente.
Poi col comando list.addnew aggiungo il file nell’elenco listbox
Per eliminare un allegato è semplice basta utilizzare il comando
Metto un icona per lanciare la cancellazione dell’allegato selezionato
I Controlli messi sono pochi e non hanno messaggi come per esempio:
“nessun allegato selezionato impossibile eliminare” o “ non ci sono allegati, impossibile eliminare” ecc…
‘ allegati sara la nostra list contenete tutti i nomi dei file allegati
If Allegati.ListCount = 0 Then Exit Sub ‘ se non ho allegati non posso eliminare nulla
If MsgBox "Rimuovere l'allegato selezionato ? ", vbYesNo = vbNo Then Exit Sub ‘ se seleziono no esco senza
eliminare nulla altrimenti elimino
Allegati.RemoveItem (Allegati.ListIndex) ‘ elimino quello selezionato
Per una prima prova di mailbox direi che possa bastare, ricordate non fermatevi mai a quello che c’è scritto o a quello che si vede, ma provate tutti i comandi di tutti i singoli oggetti, scoprirete funzionalità e funzioni straordinarie.





Lascia un commento

 
Tua email: (non verrà visualizzata)
Nome:
Commento:
Codice di sicurezza:
 

Digita il codice
visualizzato
a sinistra
Commenta




IPROGRAMMATORI.IT 2010. Tutti i diritti riservati. - P.IVA 04135460873 | Pubblicità | Termini e Condizioni - Privacy Policy | Utenti connessi : 1798 | RSS 2.0 - Le news di IProgrammatori.itRSS