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($email, 0, -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,