Gestore di NewsLetter e inviare email ad una lista di contatti (2)
Gli esempi di questo script per gestire newsletter sono tuttiin 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, imoduli e il database per permettere l'iscrizione e lacancellazione.
Oggi sarà analizzato tutto il pannello di controllo.
La pagina principale del pannello si chiama GestMail e da quisi 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 baseall'iniziale (possibilità di vederli anchetutti)
- l'opzione di cancellare tutti gli indirizzi in unasola volta (richiede conferma per sicurezza).
Nel caso si clicca su una lettera, vengono caricati tutti gliindirizzi email che inizia con tale lettera. Quindi anche inquesta pagina è presente una semplice connessione aldatabase e viene quindi incluso il file precedentementeanalizzato OpenConn.asp
Per inviare una nuova email a tutti gli iscritti, bastacliccare sul link corrispondente che porta alla pagina doveè possibile scriverla, tale pagina si chiamacreate.asp
create.asp (scarica)
Questa pagina non contiene nessuna riga di asp, ma semplicecodice html per il modulo. Il form richiede : indirizzo delmittente, oggetto e corpo del messaggio, e lapossibilità di inviare l'email in formato html otext. Prima di inviare la newsletter, viene visualizzatal'email come apparirà (attraverso il tastopreview) nella pagina preview.asp
preview.asp (scarica)
Tale pagina utilizza semplicemente il comando Request.Formper "captare" tutte le informazioni inserite nellaprecedente pagina e visualizzarle per fare la preview delmessaggio, che in base la selezione sarà in html osemplice text. <!--#includevirtual="/int/int/box2.asp"-->
Da questa pagina, è possibile scegliere se inviarel'email a tutta la lista o ad una sola persona.Scegliendo di inviare ad una sola persona, i dati sarannopassati alla pagina email.asp, mentre scegliendo di inviare idati a tutta la lista i dati saranno passati alla paginasend.asp
email.asp (scarica)
E' la pagina che permette di inviare l' email aduna sola persona. Questa utilizza asp solo per inviarel'email con CDONTS, ecco il codice principale :
<%' qui i dati inviati dalla pagina preview.asp vengono memorizzati in variabilidestinatario=request("Destinatario")tipo=request("Tipo")email=request("Email")mittente=request("Mittente")oggetto=request("Oggetto")' viene inviata la email attraverso CDONTSSet objMail = Server.CreateObject("CDONTS.NewMail")objMail.BodyFormat = 0 objMail.MailFormat = 0objMail.From=mittente objMail.To=destinatarioobjMail.Subject=oggettoobjMail.Body=emailobjMail.SendSet objMail = nothing%>
Questo codice serve per l'invio dell'email, anche sepoi in base all'opzione scelta ci saràun'istruzione IF THEN ... ELSE ...END IF cheinvierà il messaggio in formato html o testuale.
send.asp (scarica)
Funziona in modo molto simile alla pagina email.asp soloin più si collega al database per prelevare di voltain volta gli indirizzi email. Attraverso un ciclo realizzatocon DO NOT WHILE ... .EOF viene prelevata ogni volta unaemail, in ordine alfabetico, finchè non arrivaall'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 conobjMail.To=rs("Email")' la riga qui sopra preleva l'indirizzo email ad ogni "giro"rs.movenextloop
Anche qui, a secondo della scelta, sarà inviatal'email in formato html o testuale.
delete.asp (scarica)
Dal nome, si capisce subito che questa pagina serve pereliminare uno o più indirizzi email, in baseall'opzione scelta.
Oltre alla connessione, ecco il semplice codice che utilizza:
'Cerca la riga in cui è presente l'indirizzo email selezionato nella precedente paginastrSQL="SELECT * FROM Mailing WHERE ID=" & IDrs.Open strSQL,cn'inserisce tale email nella variabile emailemail=rs("Email")'stringa che cancella l'email precedentemente selezionatastrSQL="DELETE FROM Mailing WHERE ID=" & IDcn.Execute(strSQL)'pagina che restituisce quando ha conclusoresponse.redirect("gestmail.asp?del=" & email)
Questo è il codice utilizzato per la cancellazione diun indirizzo email, per cancellarli tutti, invece la paginautilizza queste 3 righe di codice
'stringa che cancella tutti i campi nella tabella MailingstrSQL="DELETE * FROM Mailing"'esecuzione stringacn.Execute(strSQL)'pagina di rispostaresponse.redirect("gestmail.asp?del=TUTTE LE EMAIL")
mailing2.asp (scarica)
E' la pagina che permette l'iscrizione da partedell'amministratore di una nuova email. Funziona moltosimilmente alla pagina mailing.asp analizzata nella lezioneprecedente.
modify.asp (scarica)
Questa pagina è la prima di 2 pag. che permettonola modifica di un indirizzo email da partedell'amministratore della newsletter. In base all'iddell'email selezionata preleva l'email corrispondentee chiede la modifica e solo all'okdell'amministratore la passa, attraverso un modulo, allapagina modify2.asp
modify2.asp (scarica)
Tale pagina ha semplicemente il compito di inserirel'email già modificata nella precedente pagina neldatabase. Il tutto attraverso queste poche righe :
'stringa che posizione il cursore sulla riga corrispondente a un determinato idstrSQL="SELECT * FROM Mailing WHERE ID=" & IDrs.Open strSQL,cnemail=rs("Email")'menorizza la email modificata in una variabile di nome emailmodemailmod=request("emailmod")'attraverso questra stringa modifica la emailstrSQL="UPDATE Mailing SET Email='" & emailmod & "'" & "WHERE ID=" & ID'esecuzione stringacn.Execute(strSQL)
Finisce qui la lezione su come gestire in modo completo esemplice una newsletter. Naturalmente saràpossibile impostare nuove opzioni... in modo da rendere lagestione ancora più facile e completa. Per esempioè possibile impostare un campo solo per inserire lapubblicità e impostare del testo predefinito daaggiungere all'inizio alla fine, senza digitarlo ognivolta.
SCARICA TUTTI I FILE IN UN UNICO FILE ZIP(16 Kb)
- Articolo precedente Realizzare un Forum (5)
- Articolo successivo Realizzare una Chat completa e funzionante (1)