Newsgroup: it.comp.www.php
Titolo: multi mail

Salve, so che è un argomento già trattato ma vorrei un parere circa
l'efficienza.
Io dovrei inviare ogni tanto una mail ha 200 indirizzi circa.
Visto che vorrei monitorare quelle mail che non partono neanche (per
capirci, quelle per cui per qualche ragione la funzione mail() ritorna un
false) pensavo di implementare la spedizione con un ciclo for e nel caso in
cui mi ritorna un false registro l'indirizzo in un array che poi analizzerei
in un secondo tempo.
Innanzitutto la procedura è corretta?
C'è qualche controindicazione lato server per cui non mi converrebbe fare
200 cicli di mail()? Dovrei far passare un po' di tempo da un ciclo
all'altro?
Grazie

 ciclo all'altro?
L'unica cosa a cui devi stare attento e' il timeout dello script ed il
carico del server.
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

 carico del server.
Per evitare un carico eccessivo al server ed evitare che un 
rallentamento nell'invio delle mail faccia terminare il tuo script prima 
del previsto, potresti dividere le mail in blocchi da 5/10, ed inviarli 
in successione effettuando il refresh della pagina che si occupa 
dell'invio e tenedo traccia dell'ultimo indirizzo a cui hai inviato il 
messaggio e del prossimo a cui dovrai inviarlo.
(Un altro metodo sarebbe quello di terminare l'invio delle mail dopo che 
č passato un intervallo di tempo prefissato, e continuare facendo il 
refresh della pagina, ma č inutile complicarsi la vita)
Ovviamente questo puoi farlo tranquillamente se l'invio delle mail viene 
fatto da una pagina che hai sotto controllo, mentre se viene effettuato 
in "background" dall'utente che si connette al sito web, devi trovare un 
metodo alternativo.
Una soluzione potrebbe essere quella di far inviare un numero prefissato 
di mail ad ogni utente che si connette dopo una certa ora (ma in questo 
modo non hai la sicurezza che tutte le mail saranno inviate, a meno che 
tu non abbia moltissime visite sicure al giorno).
Un'ultima soluzione potrebbe essere l'utilizzo di crontab, sempre che il 
tuo hoster fornisca il servizio.
ciao

 ha scritto nel
messaggio news:vZz_c.199826$OR2.9...@news3.tin.it...


 usare set_time_limit no?
Please 
http://wiki.news.nic.it/QuotarBene


 prima del previsto, potresti dividere le mail in blocchi da 5/10, 
Questa soluzione non e' percorribile, rileggi il messaggio di
"L'Ignorante".


 in un secondo tempo.
Se ti interessa conoscere se c'è stato qualche errore nella consegna
inserisci l'interstazione:
ErrorsTo: <email>\n
Se invece vuoi avere una notifica di ricevimento delle email dai tuoi
utenti:
Disposition-Notification-To: <email>\n
Francesco Duca
http://www.goldenweb.it

 l'efficienza.
Grazie per i consigli.
La mia dovrebbe essere una newsletter però con un minimo di monitoraggio.
Per me è fondamentale sapere chi ha ricevuto e chi no la mail. Non vorrei
che tra qualche mese qualcuno mi dicesse "non ho mai ricevuto una tua mail"
perché è per un progetto a cui partecipano circa 200 persone, non sono solo
mail informative ma anche "operative". Ecco perché mi preoccupo
dell'efficienza. Vorrei quindi andare un po' sul sicuro senza fare "troppi"
test inviando ogni 10 min. una mail di test a tutti e 200.
Il set_time_limit() non penso possa essere utilizzato, dal manuale:
set_time_limit() has no effect when PHP is running in safe mode. There is no
workaround other than turning off safe mode or changing the time limit in
the php.ini.
Cmq lavoro con il gestore del server  quindi chiederò a lui delucidazioni
sui tempi.
Grazie ancora.

 "operative".
IMHO se avessi questo tipo di necessita' implementaere un minisistema
web per la notifica della lettura, ossia nella mail inserisci un link
tipo:
http://www.tuoserver.com/checkmail.php?idmail=xxxx&amp;iduser=yyyy
L'utente dopo aver letto la mail dovrebbe cliccare sul link per
conferma.


 conferma.
Già, anche questo può essere un buon monitor. Diciamo che nè questo
(verifica a posteriori) nè le verifiche su mail() mi daranno una sicurezza
al 100%, ma l'uso di entrambi sicuramente mi farà dormire + tranquillamente.
Grazie a presto