Ver Mensaje Individual
  #15 (permalink)  
Antiguo 04/01/2007, 16:31
NRLABS
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 24 años, 7 meses
Puntos: 2
Re: Varios emails, uso de memoria y CPU

Esto fue usando phpmailer
hago un loop conm los emails obtenidos de la DB y envio cada X segundos, por "background", asi el cliente puede cerrar la ventana
Saludos

Código PHP:

    set_time_limit
(84000); //antes le inidco que el script puede demorarse varias horas en ejecutarse.. y q no lo mate
    
function enorme($qcl,$rem)
    {
    
 require_once(
$_SERVER['DOCUMENT_ROOT']."/admin/emails/class.phpmailer.php");

      
    while (
$rcl = mysql_fetch_array($qcl)) {
    
$asunto=$rem['asunto'];
    
$asunto=str_replace("[!rut!]", $rcl['rut'] , $asunto);
    
$asunto=str_replace("[!nombre!]", $rcl['nombre'] , $asunto);
    
$asunto=str_replace("[!apellido!]", $rcl['apellido'] , $asunto);
    
$asunto=str_replace("[!email!]", $rcl['email_1'] , $asunto);
    
$asunto=str_replace("[!direccion!]", $rcl['direccion'] , $asunto);
    
$asunto=str_replace("[!fecha!]", date("d-m-Y"), $asunto);    
    
    
$texto=$rem['cuerpo'];
    
$texto=str_replace("[!rut!]", $rcl['rut'] , $texto);
    
$texto=str_replace("[!nombre!]", $rcl['nombre'] , $texto);
    
$texto=str_replace("[!apellido!]", $rcl['apellido'] , $texto);
    
$texto=str_replace("[!email!]", $rcl['email_1'] , $texto);
    
$texto=str_replace("[!direccion!]", $rcl['direccion'] , $texto);
    
$texto=str_replace("[!fecha!]", date("d-m-Y"), $texto);


//$cabeceras  = "MIME-Version: 1.0\r\n";
    //$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
      
 

  
$mail = new PHPMailer();
      
$mail->Mailer = "smtp";
      
$mail->Host = "viva.chile.cl";
      
$mail->SMTPAuth = true;
      
$mail->Username = "VIVACHILE"; 
      
$mail->Password = "VIVACHILE";
      
$mail->From = "[email protected]";
      
$mail->FromName = "Grande chile!"; 
         
$mail->ContentType= "text/html";
      
$mail->Timeout=10; 


          
$mail->AddAddress($rcl['email_1']);
      
$mail->Subject = $asunto;
     
$mail->Body = html_entity_decode($texto);
   
//$mail->Body = "<b>ahahaha</b>";
  
     
$exito = $mail->Send();
     
$intentos=1; 
     while ((!
$exito) && ($intentos < 5)) { sleep(5); $exito = $mail->Send(); $intentos=$intentos+1;    }
 
   if(!
$exito){    $msg_E= "Problemas enviando correo electr�ico a ".$valor."<br/>".$mail->ErrorInfo;    
       
mail("[email protected]","Error envio lista correo",$msg_E); }
   
   
  
// flush();
    



    
sleep(2);// dormir dos segundos entre conexion al smtp
    
}
    
    
}

register_shutdown_function(enorme,$qcl,$rem); 

Última edición por NRLABS; 04/01/2007 a las 16:48