Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/04/2009, 10:03
isra00
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Mails masivos con mail()

Si tienes los emails en la BD puedes crear, cada vez que hagas un mailing, una tabla que contenga todos los emails y un campo booleano "enviado". Haces algo así como:

Código PHP:

function ronda() {
    
$x = 100; //Número de emails por cada ronda
    
$espera = 100; //Segundos entre ronda y ronda

    //Obtiene las direcciones pendientes
    
$pendientes = mysql_query("SELECT email FROM cola_mailing WHERE enviado = 0 LIMIT x");

    
//Para cada dirección, envía el email y guarda la dirección como despachada
    
while ($direccion = mysql_fetch_assoc($pendientes)) {
        if (
mail("Asunto", $direccion['email']...)) {
            
$q_enviado = mysql_query("UPDATE cola_mailing SET enviado = 1 WHERE email = '" . $direccion['email'] . "'");
        }
    }

    
//Revisa si quedan emails por enviar
    
$consulta = mysql_query("SELECT email FROM cola_mailing WHERE enviado = 0 LIMIT x")

    if (!
mysql_num_rows($consulta)) {
        
//Si quedan emails por enviar, espera $espera segundos para no saturar el servidor y vuelve a ejecutar la función
        
sleep(100);
        
ronda();
    }
} 
No lo he probado así que puede fallar. De todos modos espero que te sea útil. Saludos!