Foros del Web » Programando para Internet » PHP »

Enviar coreos bucle while Va muy lento, probado en 3 servers

Estas en el tema de Enviar coreos bucle while Va muy lento, probado en 3 servers en el foro de PHP en Foros del Web. Buenas Estoy enviando mediante un bucle while cientos de correos, cada 10 correos que envio dejo 10 segundos libres con un sleep. La cuestión es ...
  #1 (permalink)  
Antiguo 07/07/2008, 06:08
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Enviar coreos bucle while Va muy lento, probado en 3 servers

Buenas

Estoy enviando mediante un bucle while cientos de correos, cada 10 correos que envio dejo 10 segundos libres con un sleep.

La cuestión es que los correos están todos en una base de datos, hospedada en el mismo server y todo, pero no se por qué puede tardar hasta 10 o 20 segundos en enviar cada correo. (y cada vez creo que tarda más, incluso más de 1 minuto por correo)

Lo he probado en 3 servidores diferentes en 3 hostings distintos, y obtengo el mismo resultado... ¿alguien sabría decir por qué?

El código que uso es este:
Código PHP:

$correos
=mysql_query("select correo from correos where estado IN ('1', '2') ");

$contador=1;
echo 
"Iniciando...";
while(
$row_correos=mysql_fetch_array($correos)){
    echo 
$contador ."-";

    if(
$contador o/o 10==0){  //no me deja poner el simbolo "por ciento" en el foro :P
        
echo "Enviados" $contador; echo '<br>';
        
sleep(10);
    }
    
$email=$row_correos["correo"];
    
$clave=$row_correos["clave"];
    
    
$sfrom="[email protected]"//cuenta que envia
    
$sdestinatario=$email//cuenta destino
    
$ssubject="hola"//subject
    
$shtml=" mensaje en HTML"//mensaje
    
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
    
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
    
$sheader=$sheader."Mime-Version: 1.0\n";
    
$sheader=$sheader."Content-Type: text/html";
    
mail($sdestinatario,$ssubject,$shtml,$sheader);
    
    
$contador++;
    
}
    echo 
"Todos han sido enviados. Total: " $contador 
Como dato curioso puedo decir que al ir imprimiendo por pantalla el estado del $contador (con el echo que he dejado en el código fuente) cuando llega a más de 10, imprime el 11 así: 11- , luego le tocaría imprimir el 12 del mismo modo: 12- , pero en lugar de eso imprime primero el número 1 y tras 3 o 4 segundos imprime el 2 y la barra(-) quedando finalmente "12-" como debería haberlo hecho desde el comienzo de una sola tirada.

Y lo mismo pasa al imprimir "Enviados", primero imprime "Envia" después de 3 o 4 segundos "dos" quedando así "Enviados" y luego el número.

Última edición por IMAC/; 23/09/2008 a las 15:54
  #2 (permalink)  
Antiguo 07/07/2008, 08:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Enviar coreos bucle while Va muy lento, probado en 3 servers

Hola IMAC/

Parece ser un problema de tu servidor, haz probado hacer el mismo script sin el mail()?, para que veas donde puede estar el problema?

Saludos.
  #3 (permalink)  
Antiguo 09/07/2008, 11:35
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Enviar coreos bucle while Va muy lento, probado en 3 servers

Cita:
Iniciado por GatorV Ver Mensaje
Hola IMAC/

Parece ser un problema de tu servidor, haz probado hacer el mismo script sin el mail()?, para que veas donde puede estar el problema?

Saludos.
Como ya dije, probé en 3 servidores, y todos con el mismo resultado.
Por eso me extrañaba...
  #4 (permalink)  
Antiguo 09/07/2008, 12:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Enviar coreos bucle while Va muy lento, probado en 3 servers

Si pero lo ideal es que hagas debugging, ya que el que te imprima por partes indica un problema de la instalación de PHP ya que un script así de simple no tendría porque generar un problema.

Saludos.
  #5 (permalink)  
Antiguo 09/07/2008, 12:16
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
De acuerdo Respuesta: Enviar coreos bucle while Va muy lento, probado en 3 servers

Por cierto, he estado mirando... ¿qué tiene de especial este código?
http://www.maestrosdelweb.com/editorial/aximail/
  #6 (permalink)  
Antiguo 09/07/2008, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Enviar coreos bucle while Va muy lento, probado en 3 servers

No tiene nada de especial, es solo una alternativa a un script muy famoso llamado formMail.pl solo que en PHP donde todas las variables las levantas en el HTML (que lo hace muy inseguro).

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:07.