Creare un elenco mailing con Access 2007 ed inviare
messaggi di posta elettronica
Con questo tutorial vogliamo ottenere un database di Access che ci permetta di fare mailing utilizzando la posta elettronica.
Per prima cosa e' necessario creare una tebella, che chiameremo Nominativi, come visibile in Fig.1
Fig.1
Se servono altre informazioni e' possibile aggiungere altri campi.
Fatto cio' creiamo una maschera in autocomposizione e chiamiamo anche lei Nominativi (Fig.2). Oltre ai dati anagrafici inseriti sono presenti anche due caselle di controllo che permetteranno di inserire quel nominativo nell'elenco di quelli a cui inviare la mail oppure di escluderlo.
Fig.2
Lo scopo e' quello di inviare la mail
a tutti quelli che hanno spuntata la
casella di Mailing.
Per farlo e' necessario creare una Query di selezione in
modo da poter elencare tutti i nominativi selezionati.
La struttura della Query e' illustrata in Fig.3
Fig.3
Nella riga Criteri il campo Escludi
e' stato scritto a 0 e questo significa che la
Query selezionara' soltanto i nominativi in cui quel
campo non e' stato spuntato.
Al contrario il campo Mailing e' posto
a -1, ovvero selezionato.
La Query quindi leggera' tutti i nominativi a cui
inviare il messaggio escludendo quelli a cui abbiamo
detto di non inviare.
A questo punto visto che conosciamo i destinatari della mail non resta che scrivere il messaggio e fare in modo che il programma lo invii.
Per scrivere il messaggio ho realizzato una
maschera chiamata Invio Email visibile
in Fig.4.
Questa maschera non e' associata a nessuna tabella in
quanto serve solo per scrivere il testo del messaggio.
Fig.4
Nell'esempio che potete scarica nella sezione
Download potete notare che il tasto E-Mail non
diventa attivo fino a quando non e' stato scritto il
messaggio.
Nel caso in cui venga spuntata la casella
Personalizza, Outlook permettera' di
visualizzare il messaggio e di modificarlo prima che
venga inviato.
Come fa Access ad inviare il messaggio?
Il tasto E-Mail ha un evento su click
che lancia un programma in Visual Basic:
Private Sub Comando0_Click()
'Nome del pulsante di invio (Comando_0 in
'On Error GoTo Fine
' questo caso)
'---------------------------------------------------------------
'Apre il database e le tabelle necessarie
'---------------------------------------------------------------
Dim db As Database
Dim rst1 As Recordset
Dim EMail As String, Oggetto As String, Note As String
Dim NoMod As Boolean
Set db = CurrentDb
Set rst1 = db.OpenRecordset("Q_Invio_Email",
dbOpenDynaset) 'Nome della Query
' ---------------------------------------
' lettura dati
' ---------------------------------------
NoMod = Me!Diretto 'Nome
della casella Personalizza
rst1.MoveFirst
Do While True
EMail = rst1("EMail")
Oggetto = "Novità sito Matteo Siviero"
'Oggetto della mail
Note = Forms![Invio_EMail]![Testo1]
'Testo1 si riferisce al campo che contiene il testo
DoCmd.SendObject , "", "", EMail, "", "", Oggetto, Note,
NoMod, ""
rst1.MoveNext
If rst1.EOF Then GoTo Fine:
Loop
Close
Fine:
Close
MsgBox (Err.Description)
Exit Sub
DoCmd.Close
End Sub
Le righe con il commento sono quelle che
possono essere modificate a seconda del nome che date
agli oggetti di Access e all'oggetto della mail.
Cliccando poi su E-Mail si aprira' la
finestra di Outlook (Fig.5) nel caso in cui avete
spuntato la casella Personalizza.
Fig.5
Il messaggio risultera' ancora come non
inviato: cliccate su Invia e poi aprite Outlook
Buon lavoro.