Newsgroup: it.comp.www.php
Titolo: Problema con l'invio di newsletter...

Ho creato il mio bel sistemino per creare e inviare una newsletter a partire
da un modello (una cosa molto semplice, comunque).
Finchè la spedisco ad 1 indirizzio, tutto ok.
Quando vado a prendere l'elenco degli utenti del mio sito, dopo un po' (una
decina) si ferma.
Allora, io lo script lo lancio tramite Explorer: non è che dopo un po' mi va
in timeout e si blocca l'esecuzione?
Come posso fare per farlo completare?

incolla il codice... così non si può dire niente

<?php
function imposta_body($subject,$text) {
... crea il body del messaggio in html...e funziona...
return $body;
}
function invia_newsletter($to,$text) {
 $subject = "Newsletter";
 $headers  = "From: **** <******@*****.***>";
 $headers .= "\r\nReply-To: ****@****";
 $headers .= "\r\nContent-Type: text/html; charset=iso-8859-1";
 $text=trim(stripslashes(nl2br($text)));
 $body= imposta_body($subject,$text);
 echo $body;
 echo "<hr>";
 echo "$to - ";
 if (@mail($to, $subject, $body, $headers)) { echo "La mail è stata
inoltrata con successo."; }
                                       else { echo "Si sono verificati dei
problemi nell'invio della mail."; }
}
function invia_utenti($text){
 $db=mysql_pconnect("","","");
 mysql_select_db("*************");
 $result=mysql_query("select email from Users");
 $num_result=mysql_num_rows($result);
 while ($row=mysql_fetch_object($result))  {
  echo "-|$row->email|-<br>";
  invia_newsletter($row->email,$text);
 }
}
invia_newsletter($indirizzo,"...testo...");
?>
Inviando solo un messaggio funziona. Ho provato anche a non far visualizzare
nessun output.

Lo script sembra ok... ma ti da un errore oltre a non mandare le mail? (ti
scrive "Si sono verificati dei problemi nell'invio della mail."???) Prova a
mandarle "a blocchi" tipo 10 poi metti uno sleep($tot_secondi) magari fai un
output tipo "Primo set inviato..." e continui...

 decina) si ferma.
Perchè non metti tutti gli indirizzi in BCC e fai lavorare il server di posta ?
-- 
Lorenzo

 ha
:: scritto:
::
::: Ho creato il mio bel sistemino per creare e inviare una newsletter
::: a partire da un modello (una cosa molto semplice, comunque).
::: Finchč la spedisco ad 1 indirizzio, tutto ok.
::: Quando vado a prendere l'elenco degli utenti del mio sito, dopo un
::: po' (una decina) si ferma.
::
:: Perchč non metti tutti gli indirizzi in BCC e fai lavorare il server
:: di posta ?
Si' si', su questo non ne discuto... ma volevo capire come  mai non
funzionava ;)

Mario Cartia wrote:
:: Lo script sembra ok... ma ti da un errore oltre a non mandare le

Non mi da nessun errore... ma piu' o meno al decimo si ferma tutto


Prova un set_time_limit(0); ed aspetta un bel po'....
Ciao


Scusa, ma quale e' la cosa migliore?
fare il BCC o passarsi i records ed inviare la email?
Fabrizio Parrella
www.bibivu.it
TWiN

 fare il BCC o passarsi i records ed inviare la email?
Mah, dipende dai casi... il vantaggio del BCC è che lo script PHP deve inviare 
una sola mail e non ci sono problemi di timeout.
-- 
Lorenzo

:: Perchè non metti tutti gli indirizzi in BCC e fai lavorare il server
:: di posta ?
Esistono dei limiti al numero di caratteri e/o di indirizzi email inseribili
nel BCC?