Tienes dos opciones:
1) usas el bucle y generas un "TO: " para cada mail con el
[email protected] del campo correspodiente de tu base de datos .. Esto le llevará un buen rato lo mas probable .. asi q podria darte problemas con el tiempo de ejecución maximo que se le otorga a cada script PHP (time-out). Eso lo puedes ajustar con la función:
Código PHP:
<?
set_time_limit(0);
?>
Esta función es probable q esté desactivada en muchos hosting de pago y probable todos los gratuitos .. A "cero" esa funcion indica que "tarde lo que tarde en ejecutarse el script" .. como veras es peligroso .. podrias llegar a consumir todos los recursos del servidor y .. esto no te dejaran hacerlo en servicios de Hosting.
2) .. Obtienes todas las direcciones de e-mail en un gigantesto string (cadena) y se lo mandas (concatenadas con una , coma ) a un BCC: (como cabecera) ...
A todo esto .. si usas el bucle y quieres "dejarle respirar" a tu servidor de mail .. puedes usar la funcion:
sleep();
Eso retarda en segundos la ejecución del script .. y si lo usas en el bucle dejaras tiempo para q mail() envie ... Esta función debes usarla en conjunto con la de set_time_limit() ...
Con el Bucle aparte de personalizar el e-mail (o posibilidad de hacerlo) .. puedes tener control total de si una dirección no responde o no se pudo enviar el mail para .. utilizarlo como "flag" (bandera, estado) en alguna base de datos (campo) y determinar que e-mail se enviaron correctametne .. en consecuencia . tal vez actualizar tu lista de e-mails quitando esos mails muertos ...
La mejor manera de salir de dudas es "Probando" ..