Newsgroup: it.comp.www.php
Titolo: Invio e-mail scaglionato

Ho costruito con l'aiuto di alcuni utenti, uno script per inviare un
messaggio a più E-mail, in cui è l'utente che stabilisce a quante E-mail
inviare il messaggio.
Nel file indirizzi sono prensenti 100 E-mail e l'utente arriva allo script
dopo aver compilato un form dove può decidere a quante E-mail inviare il
messaggio tremite la variabile ( $numeroemail ) .
Se l'utente immette come ( $numeroemail )=10 il messaggio deve essere
inviato solo alle prime 10 E-mail prelevate dal file indirizzi. Se l'utente
successivo immette come ( $numeroemail )=5 il messaggio deve essere inviato
alle successive 5 E-mail prelevate dal file indirizzi. E cosi via finchè non
si raggiunge la fine delle E-mail ed il conteggio riparte da 1.
Lo script sottriportanto invece inizia il conteggio sempre da 1, e non tiene
memoria dei precedenti invi. Pertanto il messaggio viene inviato sempre alle
prime E-mail del file indirizzi.txt.
Nel dettagli quali righe di comendo devo aggiungere o modificare ?
Allego lo script:
/* numero e-mail da spedire */
$count_emails = $numeroemail ;
$arrayDestinatari = file ('indirizzi.txt') ;
$out_emails = array ();
$out_emails2 = array ();
$i = 0;
foreach ($arrayDestinatari as $arr)
{
if ($i < $count_emails)
{
mail ($arr, $oggetto, $messaggio, $intestazioni);
$out_emails[] = $arr;
}
else
{ $out_emails2[] = $arr; }
$i++;
}
array_unshift ($out_emails, $out_emails2);
unlink('indirizzi.txt');
$fileHandler = fopen ($location, "w");
fwrite ($fileHandler, implode ("\r\n", $out_emails));
fclose ($fileHandler);

 riparte da 1.
imposti un cookie che contiene il numero di email gia' spedite (nel primo
caso 10), poi ad ogni invio dello script prendi il valore di questo cookie
e crei una select del tipo
SELECT campi FROM tabella WHERE condizione LIMIT $_COOKIE['nome_cookie'],$numeroemail
dopo la spedizione della email aggiorni il valore del cookie sommando il
valore vecchio con $numeroemail.
Logicamente prima di spedire le email controlla che ci siano email da
spedire.
Ciao
-- 
Se cerchi consulenza su Linux, PHP, MySQL e tutto quello che riguarda il mondo OpenSource,
chiedi a ZioBudda Labs un preventivo. CeleritÃ  e professionalitÃ  sono solamente due
dei punti chiave di ZioBudda Labs.
Per maggiori informazioni: 
in...@ziobudda.net

 > cosi via finchÃƒÂ¨ non si raggiunge la fine delle E-mail ed il conteggio


 inserire le modifiche direttamente nello script:
Cosi' funziona:
<?php 
$count_emails = $_GET["numeroemail"]; // o relativo $_POST
$arrayDestinatari = file ('indirizzi.txt') ;
$out_emails = array ();
$out_emails2 = array ();
$i = 0;
foreach ($arrayDestinatari as $arr)
{
	if (trim ($arr) != "")
	{
		if ($i < $count_emails)	
		{ 
			mail ($arr, $oggetto, $messaggio, $intestazioni); 
			$out_emails[] = $arr;
		}
		else
		{ $out_emails2[] = $arr; }
		$i++;
	}
}
$out_emails = array_merge ($out_emails2, $out_emails);
unlink('indirizzi.txt');
$fileHandler = fopen ('indirizzi.txt', "w");
fwrite ($fileHandler, implode ("\r\n", $out_emails));
fclose ($fileHandler);
?>
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

Mi dispiace ma il conteggio inizia sempre da 1, prima dell'invio non bisogna
inserire qualcosa in modo che lo script legga il puntatore relativo
all'ultimo invio ?
Setec Astronomy <setec@_NO_NOSPAM_freemail.it> wrote in message
y9Z5c.76440$FJ6.2...@twister1.libero.it...
