Lorenzo Pascucci
a- a+

Gestore di NewsLetter e inviare email ad una lista di contatti (2)

Gli esempi di questo script per gestire newsletter sono tutti in italiano e ci sono stati concessi da Davide Bettio. Il tutto si appoggia ad un database in Access 97

Nella precedente lezione abbiamo analizzato le pagine, i moduli e il database per permettere l'iscrizione e la cancellazione.
Oggi sarà analizzato tutto il pannello di controllo.

La pagina principale del pannello si chiama GestMail e da qui si possono effettuare tutte le operazioni.

gestmail.asp (scarica)
All'interno troviamo :
- il link per entrare nella pagina da cui si può inviare la newsletter
- il modulo per aggiungere un nuovo iscritto
- il link per la ricerca degli iscritti in base all'iniziale (possibilità di vederli anche tutti)
- l'opzione di cancellare tutti gli indirizzi in una sola volta (richiede conferma per sicurezza).

Nel caso si clicca su una lettera, vengono caricati tutti gli indirizzi email che inizia con tale lettera. Quindi anche in questa pagina è presente una semplice connessione al database e viene quindi incluso il file precedentemente analizzato OpenConn.asp

Per inviare una nuova email a tutti gli iscritti, basta cliccare sul link corrispondente che porta alla pagina dove è possibile scriverla, tale pagina si chiama create.asp

create.asp (scarica)
Questa pagina non contiene nessuna riga di asp, ma semplice codice html per il modulo. Il form richiede : indirizzo del mittente, oggetto e corpo del messaggio, e la possibilità di inviare l'email in formato html o text. Prima di inviare la newsletter, viene visualizzata l'email come apparirà (attraverso il tasto preview) nella pagina preview.asp

preview.asp (scarica)
Tale pagina utilizza semplicemente il comando Request.Form per "captare" tutte le informazioni inserite nella precedente pagina e visualizzarle per fare la preview del messaggio, che in base la selezione sarà in html o semplice text. <!--#include virtual="/int/int/box2.asp"-->

Da questa pagina, è possibile scegliere se inviare l'email a tutta la lista o ad una sola persona. Scegliendo di inviare ad una sola persona, i dati saranno passati alla pagina email.asp, mentre scegliendo di inviare i dati a tutta la lista i dati saranno passati alla pagina send.asp

email.asp (scarica)
E' la pagina che permette di inviare l' email ad una sola persona. Questa utilizza asp solo per inviare l'email con CDONTS, ecco il codice principale :

<%
' qui i dati inviati dalla pagina preview.asp vengono memorizzati in variabili
destinatario=request("Destinatario")
tipo=request("Tipo")
email=request("Email")
mittente=request("Mittente")
oggetto=request("Oggetto")

' viene inviata la email attraverso CDONTS
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.BodyFormat = 0 
objMail.MailFormat = 0
objMail.From=mittente 
objMail.To=destinatario
objMail.Subject=oggetto
objMail.Body=email
objMail.Send
Set objMail = nothing

%>

Questo codice serve per l'invio dell'email, anche se poi in base all'opzione scelta ci sarà un'istruzione IF THEN ... ELSE ...END IF che invierà il messaggio in formato html o testuale.

send.asp (scarica)
Funziona in modo molto simile alla pagina email.asp solo in più si collega al database per prelevare di volta in volta gli indirizzi email. Attraverso un ciclo realizzato con DO NOT WHILE ... .EOF viene prelevata ogni volta una email, in ordine alfabetico, finchè non arriva all'ultima email.

Il ciclo funziona con queste poche righe di codice :

do while not rs.eof
'inserisci qui il codice sopra mostrato
'attenzione, la riga objMail.To=destinatario cambiala con
objMail.To=rs("Email")
' la riga qui sopra preleva l'indirizzo email ad ogni "giro"
rs.movenext
loop

Anche qui, a secondo della scelta, sarà inviata l'email in formato html o testuale.

delete.asp (scarica)
Dal nome, si capisce subito che questa pagina serve per eliminare uno o più indirizzi email, in base all'opzione scelta.

Oltre alla connessione, ecco il semplice codice che utilizza :

'Cerca la riga in cui è presente l'indirizzo email selezionato nella precedente pagina
strSQL="SELECT * FROM Mailing WHERE ID=" & ID
rs.Open strSQL,cn
'inserisce tale email nella variabile email
email=rs("Email")
'stringa che cancella l'email precedentemente selezionata
strSQL="DELETE FROM Mailing WHERE ID=" & ID
cn.Execute(strSQL)
'pagina che restituisce quando ha concluso
response.redirect("gestmail.asp?del=" & email)

Questo è il codice utilizzato per la cancellazione di un indirizzo email, per cancellarli tutti, invece la pagina utilizza queste 3 righe di codice

'stringa che cancella tutti i campi nella tabella Mailing
strSQL="DELETE * FROM Mailing"
'esecuzione stringa
cn.Execute(strSQL)
'pagina di risposta
response.redirect("gestmail.asp?del=TUTTE LE EMAIL")

mailing2.asp (scarica)
E' la pagina che permette l'iscrizione da parte dell'amministratore di una nuova email. Funziona molto similmente alla pagina mailing.asp analizzata nella lezione precedente.

modify.asp (scarica)
Questa pagina è la prima di 2 pag. che permettono la modifica di un indirizzo email da parte dell'amministratore della newsletter. In base all'id dell'email selezionata preleva l'email corrispondente e chiede la modifica e solo all'ok dell'amministratore la passa, attraverso un modulo, alla pagina modify2.asp

modify2.asp (scarica)
Tale pagina ha semplicemente il compito di inserire l'email già modificata nella precedente pagina nel database. Il tutto attraverso queste poche righe :

'stringa che posizione il cursore sulla riga corrispondente a un determinato id
strSQL="SELECT * FROM Mailing WHERE ID=" & ID
rs.Open strSQL,cn
email=rs("Email")
'menorizza la email modificata in una variabile di nome emailmod
emailmod=request("emailmod")
'attraverso questra stringa modifica la email
strSQL="UPDATE Mailing SET Email='" & emailmod & "'" & "WHERE ID=" & ID
'esecuzione stringa
cn.Execute(strSQL)

Finisce qui la lezione su come gestire in modo completo e semplice una newsletter. Naturalmente sarà possibile impostare nuove opzioni... in modo da rendere la gestione ancora più facile e completa. Per esempio è possibile impostare un campo solo per inserire la pubblicità e impostare del testo predefinito da aggiungere all'inizio alla fine, senza digitarlo ogni volta. 

SCARICA TUTTI I FILE IN UN UNICO FILE ZIP (16 Kb)



Ti potrebbe interessare anche

commenta la notizia

Ci sono 2 commenti
Anonimo
tutto funziona ma la mail alla lista non parte e la pagina send è tutta nera senza nessuna scruìitta. puoi aiutarmi? grazie

Anonimo
lo sto provando...sembra che tutto funzioni ma le mail non partono e la pagina send.asp è nera senza nessuna conferma. Devo anche dire che non ho considerato il discorso PWS o ISS perchè non so come fare. mi spiace perchè è ottimo...chissà se puoi darmi delle dritte . grazie