Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2009, 13:47
Avatar de ale80262
ale80262
 
Fecha de Ingreso: junio-2008
Mensajes: 66
Antigüedad: 16 años, 9 meses
Puntos: 0
phpmailer y envios grandes

Hola progrmae un sitema de envios para eso hice un sitema de listas que me toma los correos de una base de datos actualmente son 4 listas y en total suman un poco menos de 1500 correo hago un bucle para recorrer segun la lista los correos que le corresponden pongo la parte del codigo mi servidor me permite enviar hasta 5000 por un puerto especifico pero el problema que tengo es que cuand temina el bucle yo cambio el estado del mensaje a enviado pero pero cuando me tira un error no se si envio el correo o no se a cuantos envio hay alguna forma de saber eso o como podria hacer para hacer envios de a 200 correos por ejemplo y que a los 10 minutos envie los siguientes 200 yo hice epruebas (codigo de abajo) con sleep dejo el codigo pero en el caso qeu retome el envio si hay algun error tampoco sabria a cuales envios de tambien configure un cron para que se fije pero si el estado del envios es no enviado envia el correo y en ese caso estaria enviado de vualta a los correos que ya envio

Código PHP:
//mensajes cantidad
$between_delay 1;  
//segundos entre
$send_delay 1;  


echo 
"Iniciando...<br>";
for ( 
$sent=0$a mysql_fetch_array($res); $sent++ ) { 

 if ( (
$sent $between_delay) == 
  
sleep$send_delay );
 
$estadistica '<img src="http://XXXXXXXX/estadistica.php?&id_correo='.$id_correo.'" width="0" height="0" />';

// esto es una prueba para remplazar por emdio de eiquetas y hacerlo personalizado 
$mensaje2 str_replace("[nombre]",$a["nombre"],$mensaje);
$mensaje3 str_replace("[apellido]",$a["apellido"],$mensaje2);
//$mensaje4 = str_replace("[estadistica]",$estadistica,$mensaje3);
$mensaje5 str_replace("[empresa]",$a["empresa"],$mensaje3);


$mail->AddAddress($a["correo"]); 
$body $mensaje5.$estadistica;
$mail->IsHTML(true); 
$mail->Subject $asunto
$mail->Body $body
$mail->MessageID $id_correo;
$exito $mail->Send(); 



if(
$exito) {
echo 
$a["correo"] . "ok <br>";
    }else{
   echo 
$a["correo"] . "error <br>";
}
$mail->ClearAddresses();

$contador++;


el codigo funciona bien con poca cantiddad de correos ahora esta configurado para que mande 1 cada 1 segundo para probar y funciona

muchas gracias por alguna opinion