Può essere utile poter comunicare rapidamente con tutti gli utenti di un sito del quale si
è l'amministratore; in questo caso, è possibile creare la seguente pagina, raggiungibile dal
pannello di amministrazione.
Si suppone che il database degli utenti si chiami utenti.mdb, e che la tabella si chiami
elenco; i campi nome utente ed e-mail si chiamano rispettivamente "username" ed "email".
<%@ LANGUAGE = JScript %> <% Response.Expires=0; var text = "" + Request.Form("testo"); // "" + equivale circa a new String() ma è più efficace var title = "" + Request.Form("titolo"); // ...ma non chiedetemi perchè, so che evita problemi if (text!="undefined") { text = text.replace(/(\r)/g,"<br>"); // gli "a capo" vengono codificati in html // inizializza i link con il database var ADOConnection = new ActiveXObject("ADODB.Connection"); var sdc = ""; sdc += "driver={Microsoft Access Driver (*.mdb)};"; sdc += "dbq=" + Server.MapPath("/mdb-database/utenti.mdb"); ADOConnection.Open(sdc); var sql = "SELECT * FROM elenco WHERE NOT username LIKE 'amministratore'"; /* L'amministratore molto probabilmente è inserito nel DB degli utenti; in questo caso l'e-mail non gli viene inoltrata; gli sarà inviata con un'istruzione successiva. Sostituire "amministratore" con lo user dell'amministratore. NOTA: si suppone che l'amministratore si distingua unicamente dallo username. */ var recset = ADOConnection.Execute(sql); var destinatari = ""; while (!recset.EOF) { destinatari += recset("email"); destinatari += ", "; recset.MoveNext(); } ADOConnection.Close(); destinatari += "indirizzo.del.webmaster@dominio.xx"; // l'ultimo indirizzo ad essere inserito è quello del webmaster, al quale // arriverà una copia della newsletter da conservare nell'archivio. var mail = new ActiveXObject("CDONTS.NewMail"); var body = ""; body += "<html>"; body += "<head><title>Newsletter</title></head>"; body += "<body>"; // inserire le varie intestazioni della newsletter body += "<p align=justify>"; body += text; body += "</p>"; body += "<p align=center><img src='logo.gif'></p>"; // si inserisce il logo del sito in fondo alla mail (opzionale!) body += "</body>"; body += "</html>"; mail.MailFormat = 0; // Mail MIME mail.BodyFormat = 0; // Corpo HTML mail.AttachURL(Server.MapPath("/images/logo.gif"), "logo.gif"); // il logo del sito (se si vuole inserirlo nella mail) va dichiarato così mail.To = ""; mail.Bcc = destinatari; mail.From = "NomeSito"; mail.Subject = "[Newsletter]" + titolo; // nel soggetto della mail compare il titolo inserito nel form mail.Body = body; mail.Send(); %> <html> <body> <p> <h4>Community</h4> <b>Invia newsletter</b> </p> <% Response.Write("<p align=\"center\">Newsletter inviata con successo!</p>"); // viene mostrata una copia della newsletter inviata Response.Write("<p align=\"center\">\n" + body + "\n</p>"); } else { %> <html> <body> <p> <h4>Community</h4> <b>Invia newsletter</b> </p> <p align="center"> <table border=0 cellspacing=1 cellpadding=0 bgcolor="#eeddff"> <form method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>"> <tr><td bgcolor="#f6f6ff" align=left><b>Titolo:</b></td> <td bgcolor="#fffcff"><input type="text" name="titolo"></td></tr> <tr><td bgcolor="#f6f6ff" colspan=2 align=left><b>Testo:</b></td></tr> <tr><td bgcolor="#fffcff" colspan=2><textarea name="testo" rows=10 cols=70></textarea></td></tr> <tr><td colspan=2 align=center bgcolor="#f6f6ff"> <input type="submit" value="Invia"></td></tr> </form> </table> </p> <% } %> </body> </html>