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.

 

 

Ultimi Articoli

01.05.2017
Proteggere Access
11.03.2017
Perche' imparare il VBScript
22.08.2016
Rubrica con VBScript - Parte 2
28.07.2016
Rubbrica con VBScript - Parte 1
15.12.2015
Raccolta dati da sito web