Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/05/2009, 21:48
Avatar de Marvin
Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: controlar envios correctos phpmailer

A ver vamos por parte... para que redirija se supone que $exito debe ser distinto de falso. Si siempre es 1 deberia por consecuencia redirijir... por lo tanto podemos deducir que no siempre es 1.

Por otro lado sleep("segs") hace que la ejecucion del programa tarde los segundos dados, por lo tanto solo se va a demorar un poco mas en ejecutar el script mas que darte tiempo.

Aumentar el tiempo del script puede funcionar en tu caso, ya que tienes que enviar 3000 correos asi que podria demorarse un tiempo.

Y para que valide un mail debes poner una funcion que lo haga... podrias probar con algo como esto:
Código php:
Ver original
  1. $exito      = $mail->Send();
  2. $intentos   = 1;
  3. $fecha      = date("j F, Y, g:i a");
  4. $mf         = fopen("mails.txt","a") or die("Problemas en la creacion");
  5. fputs($mf, "Fecha: $fecha\n");
  6. if(checkMail($destinatario)){
  7.     while((!$exito) && ($intentos < 5)){
  8.         sleep(5); //tarda 5 segs en continuar
  9.         $exito = $mail->Send();
  10.         $intentos++;
  11.         fputs($mf, "Error: ".$mail->ErrorInfo."\n");
  12.     }
  13.     fputs($mf, "Valor de envio = ".$exito."\n");
  14.     if(!$exito){
  15.         fputs($mf, "Problemas enviando correo a ".$destinatario."\n");
  16.         fputs($mf, "Error: ".$mail->ErrorInfo."\n");
  17.         fputs($mf,"ACA NO SE ENVIA EL HEADER...\n");
  18.         fputs($mf,"---------------------------------------");
  19.         fputs($mf,"\n");
  20.         fclose($mf);
  21.     }else{
  22.         fputs($mf, "Correcto envio a ".$destinatario."\n");
  23.         fputs($mf,"---------------------------------------");
  24.         fputs($mf,"\n");
  25.         fclose($mf);
  26.         header("Location: index.php?proceso=email_enviado");
  27.     }
  28. }else{
  29.     fputs($mf, "Correo invalido: (".$destinatario.") \n");
  30.     fputs($mf,"---------------------------------------");
  31.     fputs($mf,"\n");
  32.     fclose($mf);
  33. }
  34. function checkMail($mail){
  35.     if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){
  36.         return false;
  37.     }else{
  38.         return true;
  39.     }
  40. }

Codigo no testeado.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!