Foros del Web » Programando para Internet » PHP »

enviar de 50 en 50 mails

Estas en el tema de enviar de 50 en 50 mails en el foro de PHP en Foros del Web. Hola a todos: Tengo una lista de correos de mas de 1000 y me gustaria mandar los correos por lotes de 50 ya que me ...
  #1 (permalink)  
Antiguo 03/09/2010, 14:52
Avatar de JOSANCIN  
Fecha de Ingreso: septiembre-2008
Ubicación: huesca
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 0
enviar de 50 en 50 mails

Hola a todos:
Tengo una lista de correos de mas de 1000 y me gustaria mandar los correos por lotes de 50 ya que me han dicho que si mando los 1000 me puede dar problemas

tengo un bucle que recorre toda la tabla de correos pero no se me ocurre como hacer para que mande los 50 primeros, luego los 50 siguientes..

$res=consultar("select * from usuarios");

while ($fila=mysql_fetch_array($res)){

$mail=$fila['mail'];
mail("$email","el mensaje de la semana",$mensaje,$headers);
}

Agradeceria si alguien tuviese una idea, no se me ocurre nada.
Que vaya bien y buen finde para todos
  #2 (permalink)  
Antiguo 03/09/2010, 15:42
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: enviar de 50 en 50 mails

Hola,

No estoy seguro que significa mandar en grupos de 50, ¿Vas enviar un email a 50 destinatarios juntos o vas a mandar 50 email a intervalos de tiempo separados para que el servidor de correos no dé problemas?

Posiblemente,

Podrías juntar las direcciones en el encabezado TO, (lógicamente todos los destinatarios van a ver todas las direcciones en su Inbox)

Código PHP:
$c 0;
$res=consultar("select * from usuarios");
while (
$fila=mysql_fetch_array($res)){
  if (
$c++ < 50) {
    
$email .= $fila['mail'] + ", ";
  } else {
    
$email substr($email0, -2);
    
mail("$email","el mensaje de la semana",$mensaje,$headers);
    
$c 0;
  }

O posiblemente enviar uno por uno y esperar un tiempo entre cada grupo de 50 mensajes,

Código PHP:
$c 0;
$res=consultar("select * from usuarios");
while (
$fila=mysql_fetch_array($res)){
  if (
$c++ < 50) {
    
$email $fila['mail'];
    
mail("$email","el mensaje de la semana",$mensaje,$headers);
  } else {
    
$c 0;
    
// sleep(600)
  
}

En los dos casos, existe un posible 'timeout' de PHP y el 'timeout' del servidor web; si no estas ejecutado PHP como CLI.

Saludos,

Etiquetas: enviar, mails
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 13:29.