- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Newsletter senza DATABASE 1.1
-
newsletter.php:
[php]
<?PHP
/*****************- newsletter.php *
-
SCWD *
*****************/
require('config.php');
//Passaggio variabili
if(isset ($_POST['mail']))
{$mail=$_POST['mail'];}
if(isset ($_GET['ctrl']))
{$ctrl=$_GET['ctrl'];}
if(isset ($_GET['amministratore']))
{$amministratore=$_GET['amministratore'];}if($ctrl==1)
{
//Verifica forma e-mail
$verifica_mail = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $mail);
if(!$verifica_mail)
{echo "$err_mail";
if($amministratore==1)
{
echo " <br />
<script type="text/javascript">
<!--
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
location.href = "gestione.php?operazione=3";
}
window.setTimeout("doRedirect()", 4000); //Fa partire il redirect dopo tot. secondi
//-->
</script>
Se entro 4 sencondi non vieni reindirizzato <a href="gestione.php?operazione=3">clicca qui</a>.<br />";
}
else
{ echo " <br />
<script type="text/javascript">
<!--
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
location.href = "newsletter.php?ctrl=0";
}
window.setTimeout("doRedirect()", 4000); //Fa partire il redirect dopo tot. secondi
//-->
</script>
Se entro 4 secondi non vieni reindirizzato <a href="newsletter.php?ctrl=0">clicca qui</a>.";
}
exit();
}//Verifica se esiste l'e-mail inserita dall'utente include("$db_utenti"); //Includo utenti.php (o il nuovo nome del file di dati) perchè essendo una pagina contenente un array con tutte le e-mail scorro lo stesso per controllare se l'e-mail inserita non esiste. $lunghezza_array=count($users); //Conto il numero delle e-mail presenti nell'array $esiste=0; $mail_utente_iscritto=$mail; for($i=0; $i<$lunghezza_array; $i++) { $controllo=strcmp($mail,$users*); if($controllo==0) { $esiste=1; //Se esiste assegno 1 alla variabile $esiste } } if($esiste==1) //E-mail già esistente { echo "$err_mail_esistente"; if($amministratore==1) { echo " <br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"gestione.php?operazione=3\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script> Se entro 4 sencondi non vieni reindirizzato <a href=\"gestione.php?operazione=3\">clicca qui</a>.<br />"; } else { echo " <br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"newsletter.php?ctrl=0\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script> Se entro 4 secondi non vieni reindirizzato <a href=\"newsletter.php?ctrl=0\">clicca qui</a>."; } } else //E-mail non esistente nel file, procediamo alla registrazione dell'e-mail { //L'e-mail è salvata nella variabile $mail $fp = fopen($db_utenti,"r+"); fseek($fp, -3,SEEK_END); $stampa_completa=" $"."users[]=\"$mail\";
?>";
fputs($fp, $stampa_completa);
fclose($fp);echo"$registrato_ok<br />"; if(isset ($notify_subscribed)) //Se la notifica è abilitata invia una mail con gli utenti registrati e l'ultimo utente registrato al servizio { //Invio notifica all'amministratore della newsletter con gli utenti attualmente registrati al servizio $numero_utenti=count($users); $oggetto="Utente iscritto dal servizio"; $header = "From: UPDATE: Newsletter $nome_sito <$home_page>\n"; // costruiamo le intestazioni specifiche per il formato HTML $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n\n"; $messaggio=""; for($i=0; $i<$numero_utenti; $i++) //Inserisco dentro al testo del messaggio la lista degli utenti { $messaggio=$messaggio."<br />- $users*"; } $messaggio=$messaggio."<br />- $mail_utente_iscritto"; $messaggio=$messaggio."<br /><br />Utente iscritto dal servizio: $mail_utente_iscritto"; //Scrivo l'ultimo utente che si è cancellato dal servizio @mail($email_notify,$oggetto,$messaggio,$header); //Invio il messaggio all'amministratore }
if($amministratore==1) //Se è l'amministratore che cancella l'e-mail deve essere rimandato alla sua pagina di amministrazione
{
echo "<br />
Se entro 4 secondi non vieni rimandato alla gestione newsletter
<a href="gestione.php">clicca qui</a><br />
<script type="text/javascript">
<!--
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
location.href = "gestione.php";
}
window.setTimeout("doRedirect()", 4000); //Fa partire il redirect dopo tot. secondi
//-->
</script>";
}
else //Se è l'utente che si cancella ritorna all'home page
{
echo " <br />
<script type="text/javascript">
<!--
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
location.href = "$home_page";
}
window.setTimeout("doRedirect()", 4000); //Fa partire il redirect dopo tot. secondi
//-->
</script>
Se entro 4 secondi non vieni reindirizzato alla home page <a href="$home_page">clicca qui</a>.<br />";
}}
}
else if((!$ctrl)||($ctrl==0)) //Form di iscrizione
{
echo " <form name="new_email" action="newsletter.php?ctrl=1" method="post">
<table align="center"><tr> <td> *e-mail </td> <td> <input type=\"text\" size=\"30\" name=\"mail\"> </td> </tr> <tr> <td colspan=\"2\"> <input type=\"submit\" value=\"Invia\" name=\"submit\"> </td> </tr> </table> </form>";
}
?>
[/php]cancella.php:
[php]
<?PHP
/***************- cancella.php *
-
SCWD *
***************/
require('config.php');
include("$db_utenti");//Passaggio variabili
if(isset ($_GET['del']))
{$del=$_GET['del'];}
if(isset ($_GET['amministratore']))
{$amministratore=$_GET['amministratore'];}
//A seconda di chi cancella c'è un metodo di trasmissione dell'e-mail.
if(isset ($_POST['del_mail']))
{$del_mail=$_POST['del_mail'];}
else if(isset ($_GET['del_mail']))
{$del_mail=$_GET['del_mail'];}if($del==1)
{
$lunghezza_array=count($users); //Conto il numero delle e-mail presenti nell'array
$esiste=0;
for($i=0; $i<$lunghezza_array; $i++)
{
$controllo=strcmp($del_mail,$users*);if($controllo==0) { $esiste=1; $posizione_array=$i; //La posizione dell'array da cancellare } } if($esiste==0) //Se non esiste l'e-mail nel nostro file { echo"<br />$err_mail_inesistente<br />"; if($amministratore==1) { echo " <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"gestione.php?operazione=3\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script> Se non vieni reindirizzato alla gestione entro 4 secondi <a href=\"gestione.php?operazione=3\">clicca qui</a>.<br />"; } else { echo " <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"cancella.php\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script> Se non vieni reindirizzato al form di cancellazione entro 4 secondi <a href=\"cancella.php\">clicca qui.</a>.<br />"; } } else //Se esiste cancella le due righe dell'e-mail dell'utente
{
$cancellare_mail="$"."users[]="$users[$posizione_array]";"; //Stringa mail da cancellare
$mail_utente_cancellato="$users[$posizione_array]";
$str="";
//Copio tutto il file dentro una variabile stringa
$fp=fopen($db_utenti, "r");while (false !== ($c = fgetc($fp))) { $str=$str."$c"; //Se si stampa $str non stampa nulla perchè il browser non legge i tag php } fclose($fp); //Chiudo il file $str_aggiornato=str_replace("$cancellare_mail", "", $str); //Tolgo dalla stringa (che contiene l'intero file) l'e-mail da cancellare $fp=fopen($db_utenti,"w"); //Riapro il file con gli utenti fputs($fp, $str_aggiornato); //Riscrivo il nuovo file senza l'utente cancellato fclose($fp); //Chiudo nuovamente il file echo"<br />$delete_mail_confermato<br />"; if(isset ($notify_deleted)) //Se la notifica è abilitata invia una mail con gli utenti registrati e l'ultimo utente cancellato al servizio { //Invio notifica all'amministratore della newsletter con gli utenti attualmente registrati al servizio $numero_utenti=count($users); $oggetto="Utente cancellato dal servizio"; $header = "From: UPDATE: Newsletter $nome_sito <$home_page>\n"; // costruiamo le intestazioni specifiche per il formato HTML $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n\n"; $messaggio=""; for($i=0; $i<$numero_utenti; $i++) //Inserisco dentro al testo del messaggio la lista degli utenti { if((strcmp($users*,$mail_utente_cancellato))!=0) // Se sono diverse ritorna un numero diverso da zero quindi copia tutti gli utenti tranne l'ultimo cancellato { $messaggio=$messaggio."<br />- $users*"; } } $messaggio=$messaggio."<br /><br />Ultimo utente cancellato dal servizio: $mail_utente_cancellato"; //Scrivo l'ultimo utente che si è cancellato dal servizio @mail($email_notify,$oggetto,$messaggio,$header); //Invio il messaggio all'amministratore } if($amministratore==1) //Se è l'amministratore che cancella l'e-mail deve essere rimandato alla pagina di amministrazione { echo "<br /> Se entro 4 secondi non vieni rimandato alla gestione newsletter <a href=\"gestione.php\">clicca qui</a><br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"gestione.php\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script>"; } else //Se è l'utente che si cancella ritorna alla home page { echo " <br />Se entro 4 secondi non vieni rimandato all'home page <a href=\"$home_page\">clicca qui</a><br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"$home_page\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script>"; }
}
}
else
{
echo"<br /><p align=center>$delete_mail<br /></p>";
echo "<form name="cancellati" action="cancella.php?del=1" method="post">
<table align="center"><tr> <td> *e-mail </td> <td> <input type=\"text\" size=\"30\" name=\"del_mail\"> </td> </tr> <tr> <td colspan=\"2\"> <input type=\"submit\" value=\"Invia\" name=\"submit\"> </td> </tr> </table> </form>";
}
?>
[/php]invio_newsletter.php:
[php]
<?PHP
/***********************- invio_newsletter.php *
-
SCWD *
************************/
require('config.php');
include("$db_utenti");if((!isset ($_SESSION['nickname']))&&(!isset ($_SESSION['password'])))// Se non si è loggati rimanda alla pagina di login
{
echo "Login non effettuato.
<!-- EFFETTUO UN REDIRECT ALLA PAGINA DI LOGIN -->
<script type="text/javascript">
<!--
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
location.href = "login.php";
}
window.setTimeout("doRedirect()", 3000); //Fa partire il redirect dopo tot. secondi
//-->
</script>
<br />Se entro 3 secondi non vieni reindirizzato al form di login <a href="login.php">clicca qui</a>.<br />
";
exit();
}//Passaggio variabili
if(isset ($_GET['step']))
{$step=$_GET['step'];}if(isset ($_POST['testo']))
{
$testo=$_POST['testo'];
$_SESSION['testo']=$testo;
}
if(isset ($_POST['oggetto']))
{
$oggetto=$_POST['oggetto'];
$_SESSION['oggetto']=$oggetto;
}
if(isset ($_SESSION['testo']))
{$testo=$_SESSION['testo'];}
if(isset ($_SESSION['oggetto']))
{$oggetto=$_SESSION['oggetto'];}if(($step==1)||(!$step))
{
echo "<br /><form name="invia_newsletter" action="invio_newsletter.php?step=2" method="post">
<table align="center"><tr> <td> *Oggetto newsletter </td> <td> <input type=\"text\" size=\"30\" name=\"oggetto\"> </td> </tr> <tr> <td> *Testo della newsletter<br />(Puoi utilizzare anche tag HTML)<br /><p align=justify><font size=2>Attenzione una volta premuto INVIA<br /> ci vorrà del tempo per inviare tutte le e-mail.</font></p> </td> <td> <textarea name=\"testo\" style=\"width: 400px; height: 200px\"></textarea> </td> </tr> <tr> <td colspan=\"2\"> <input type=\"submit\" value=\"Invia\" name=\"submit\"> </td> </tr> </table> </form><br />";
}
//Verifica dei dati inseriti
else if($step==2)
{
if(($oggetto=="")||($testo==""))
{
echo"Si sono verificati i seguenti errori:<br />";if($oggetto=="") { echo"<br />- Oggetto newsletter non inserito;"; } if($testo=="") { echo"<br />- Testo newsletter non inserito;"; } echo " <br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"gestione.php\"; } window.setTimeout(\"doRedirect()\", 4000); //Fa partire il redirect dopo tot. secondi //--> </script> Se entro 4 secondi non vieni rimandato alla gestione <a href=\"gestione.php\">clicca qui</a>.<br /> "; } else //Tutto ok { $numero_utenti=count($users); //Numero di utenti registrati alla newsletter //Modifico il testo: if(isset ($HTML_text_transform)) //Se settato sostuisce alcuni tra i più importanti caratteri speciali { $a_capo="\n"; $testo=str_replace($a_capo,'<br/>',$testo); /*Sostituisce gli "a capo" dati dall'invio della tastiera con <br /> nella stringa del testo; per eseguire tale funzione bisogna settare $HTML_text_transform nel file di configurazione. La funzione esiste ma non essendo sicuri che sostituisca anzichè con <br />, <br> meglio auto-implementarla.*/ $testo=str_replace("\'",''',$testo); //Se trova un'apice la sostituisce con codice html $testo=str_replace('\"','"',$testo); //Se trova le virgolette le sostituisce con codice html $testo=str_replace('\\\\','\',$testo); //Se trova un backslash lo sostituisce con codice html } $header = "From: Newsletter $nome_sito <$email_notify>\n"; // costruiamo le intestazioni specifiche per il formato HTML $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n\n"; $corpo="<br /> $testa_news <br /> $testo<br /> <br /> <br /> $coda_news"; if(isset ($_GET['i_attuale'])) { $i_attuale=$_GET['i_attuale']; if($i_attuale>0) { if(!isset ($_GET['attesa'])) { echo " <br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"invio_newsletter.php?i_attuale=$i_attuale&step=2&attesa=1\"; } window.setTimeout(\"doRedirect()\", 10000); //Fa partire il redirect dopo tot. secondi //--> </script> Per evitare di mandare in blocco il sistema lo script è stato interrotto e riprenderà tra 10 secondi. NON chiudere/aggiornare la pagina.<br /> Se non vieni reindirizzato entro 10 secondi <a href=\"invio_newsletter.php?i_attuale=$i_attuale&step=2&attesa=1\">clicca qui</a>.<br /> "; exit(); } } else {$i_attuale=0;} } else {$i_attuale=0;} $controllo_contatore=0; for($i=$i_attuale; $i<$numero_utenti; $i++) { if( @mail($users*,$oggetto,$corpo,$header)) { echo "<br /><font face=verdana size=2 color=blue><center>INVIATA - $users*.</center></font>"; } else { echo "<br /><font face=verdana size=3 color=red><center>NON INVIATA - $users*</center></font>"; } $controllo_contatore++; if($controllo_contatore>49) { $i_attuale=$i+1; echo " <br /> <script type=\"text/javascript\"> <!-- function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere location.href = \"invio_newsletter.php?i_attuale=$i_attuale&step=2\"; } window.setTimeout(\"doRedirect()\", 2000); //Fa partire il redirect dopo tot. secondi //--> </script> Per evitare di mandare in blocco il sistema lo script verrà interrotto e riprenderà tra qualche secondo. NON chiudere/aggiornare la pagina. Se non vieni reindirizzato entro 2 secondi alla pagina di attesa <a href=\"invio_newsletter.php?i_attuale=$i_attuale&step=2\">clicca qui</a>.<br /> "; exit(); } } echo"<br /><br /><a href=\"gestione.php\">Torna alla gestione</a><br /><br />"; $_SESSION['testo']=""; $_SESSION['oggetto']=""; }
}
?>
[/php]
Lo script è impostato per trasmettere le mail a gruppi di 50 per volta attendendo tra un gruppo di invio ed un altro 10 secondi, questo per evitare che il server che lo ospita possa bloccare l'esecuzione dello script.
Ovviamente è importante non chiudere la pagina fino ad esecuzione terminata.Spendo due parole sul perché dell?utilizzo di un redirect in Javascript anziché un header in php:
semplicemente perché alcuni host non supportano la funzione header, per essere sicuri lo
faccio in Javascript.
Ovviamente il tutto non è graficamente composto, quindi può essere adattato nel modo in cui
pensate sia meglio farlo.
SCWDQuì trovate il pacchetto zippato contenente i file.
E quì troverete una demo online per testare lo script.
Buon divertimento.
-
Non so se si può rispondere qui..visto che nessuno ha risposto...
Comunque io ho provato ad installare il tuo newsletter, ma mi da alcuni errori.
Uno è quello che ti appare anche a te nel demo messo a disposizione, e cioè una cosa tipo:
Warning: include() [function.include]: URL file-access is disabled in the server configuration in D:\Inetpub\webs\lilithstasopracom\public\newsletters\gestione.php on line 7
Warning: include(utenti.php) [function.include]: failed to open stream: no suitable wrapper could be found in D:\Inetpub\webs\lilithstasopracom\public\newsletters\gestione.php on line 7
Warning: include() [function.include]: Failed opening 'utenti.php' for inclusion (include_path='.;c:\php\includes') in D:\Inetpub\webs\lilithstasopracom\public\newsletters\gestione.php on line 7
Nella linea 7 ho: include("$db_utenti");
nel login anche, se aggiungo una mail nell'opzione aggiungi email, quando clicco su invia mi da un errore:
Warning: include(utenti.php) [function.include]: failed to open stream: no suitable wrapper could be found in D:\Inetpub\webs\lilithstasopracom\public\newsletters\newsletter.php on line 53
in cui ho: include("$db_utenti");
Insomma da sempre errore riguardo a db_utenti, forse non mi fa scrivere.
I permessi non sono visto che addirittura ho messo il tutto nella cartella public, e poi ho controllato e sono su 666.
Altro problema nel form del sito in cui la gente immette la mail per iscriversi, al momento di cliccare su invia, mi dice pagina non trovata..
Dove posso andare a guardare per farlo funzionare?Premetto che ho seguito le tue istruzioni, quale modificare il file config.php.
Spero in una risposta e grazie.
-
I permessi non dovrebbero essere a 666, ma a 777.
-
Lo so, ma non me li fa mettere, nonostante sia pure in public.
Uso aruba con hosting windows.
-
Su aruba hosting dal pannello admin, puoi avviare la procedura di ripristino dei permessi. Se devi farci girare script php è comunque preferibile che passi ad un hosting linux.
-
Si ho gia fatto il ripristina, ma me li mette sempre a 666, che razza di senso ha.
Lo so che sarebbe meglio linux ma chi lo sapeva che dava tutti sti problemi..e tutti gli altri come fanno?
E poi ora devo aspettare che finisce l'anno del contratto per cambiare, non c'è un modo per aggirare la cosa? Non riesco proprio a far funzionare tante cose, sempre per via dei permessi.Provo a scrivere ad aruba magari.
-
Il ripristino dei permessi che io sappia finoa poco tempo fa diceva che poteva impiegare alcune ore.
Gli altri usano linux, chi compra un hosting windows solitamente usa asp invece di php.Hai comunque verificato di aver messo nel config.php il percorso corretto del file?
-
Il ripristino me l'ha fatto in 2 secondi e non ore...non so perchè...
Il percorso comunque è giusto...figurati sono due sere che sto impazzendoci dietro.
-
Guardando bene l'errore, a me non sembra un problema di permessi ma piuttosto di un percorso non valido.
A sto punto ti chiedo, cosa hai messo come valore di $db_utenti?
-
Non mi fa mettere l'url... comunque è giusto anzi provo a metterlo senza il http e www
$db_utenti=".lilithstasopra.com/public/newsletters/utenti.php";
Ok l'ha messo..
-
Infatti è sbagliato.
In che cartella hai messo lo script?
-
Intendi lo script di config.php?
Sempre nella stessa cartella in public/newsletters
Si..dimmi che ho sbagliato ti prego.
-
Ok ho scritto solo il nome del file ed ha funzionato...eppure li c'era scritto di mettere anche l'indirizzo completo..
Ora ho un altro problema per cancellare una mail..
Li ho messo sempre l'indirizzo completo cioè http:www ecc ecc fino alla cartella cancella.php e mi da il solito errore a questa riga:$fp=fopen($db_utenti,"w"); //Riapro il file con gli utenti
fputs($fp, $str_aggiornato); //Riscrivo il nuovo file senza l'utente cancellato
fclose($fp); //Chiudo nuovamente il fileDice argomento non valido stream...qualcosa del genere.
E lo fa anche quando invio una mail nuova...li mi sa che sono sempre i maledetti permessi...
Su che aspetti dimmi che ho sbagliato ancora?
-
Dovresti incollare l'errore altrimenti non posso aiutarti.
-
Warning: fopen(utenti.php) [function.fopen]: failed to open stream: Permission denied in D:\Inetpub\webs\lilithstasopracom\public\newsletters\cancella.php on line 80
Warning: fputs(): supplied argument is not a valid stream resource in D:\Inetpub\webs\lilithstasopracom\public\newsletters\cancella.php on line 81
Warning: fclose(): supplied argument is not a valid stream resource in D:\Inetpub\webs\lilithstasopracom\public\newsletters\cancella.php on line 82
-
Scusate l'assenza, controllo la procedura domani vedo se per caso è errata e faccio aggiornare
Grazie Thedarkita
-
Fantastico!
Questo scritp è semplicemnte fantastico!
Grazie a tutti voi
-
Prego,
facci sapere come và, e se ci sono cose che secondo te vanno migliorate.
Grazie a te.
-
Ciao,
tutto è migliorabile, anche questo script fantastico!
Allora per prima cosa farei una semplice modifica; la frase "[email protected] correttamente cancellata." la colorerei di rosso e magari gli darei un carattere grassetto. Come formattazione non c'è niente (colori, testi, etc etc) e va bene così, ma questa frase la colorerei di "default".
edit: "Se entro 4 secondi non vieni rimandato alla gestione newsletter clicca qui" Toglierei il redirect dopo 4 secondi quando elimino una e-mail! Se sbaglio a cancellare, ho pochi secondi per capire che e-mail è! (anche se arriva l'indirizzo cancellato sulla mail dell'amministratore )
Sempre per quanto riguarda la formattazione forse inserirei delle classi nei vari elementi in modo da poter formattare con i css senza dover mettere le mani al codice. Di default potresti lasciare tutto bianco e nero come adesso
Sarebbe interessante avere una copia di ogni newsletter inviata (con scritta la data di invio...)
Domanda: Il codice html lo posso copiare e incollare da un altro editor?
Potrebbe essere utile l'integrazione di un editor come TinyMCE.
Questi sono un po' di suggerimenti in ordine sparso che mi sono venuti in mente, spero che vi possano essere utili.
A presto!
-
Chiaramente puoi modificarlo come più ti sembrerà opportuno, certo che ognuno deve vedersi come gli interessa... Se non sbaglio invia una e-mail sull'account dell'amministratore con la newsletter inviata..ma non mi ricordo.
Vedremo più avanti.
Grazie 1000.