yo creo que en tu consulta SQL estas trayendo email duplicados
prueba agregar un
DISTINCT despues del select...
ejemplo:
(select distinct email from correos where email is not null and email != "")
y esta linea podrias preguntarla en tu consulta.
if( !empty($u->email)):
y te pego una recomendacion que hacen en la pagina de php al querer enviar un
email Es importante indicar que la función mail() no es conveniente para grandes volúmenes de correo en bucle. Esta función abre y cierra un socket SMTP para cada correo, algo que no es muy eficiente.
Para enviar una gran cantidad de correo, ver los paquetes » PEAR::Mail y » PEAR::Mail_Queue.