Ver Mensaje Individual
  #17 (permalink)  
Antiguo 12/01/2007, 08:58
NRLABS
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 23 años
Puntos: 2
Re: Varios emails, uso de memoria y CPU

Cita:
Iniciado por scorpiollanos Ver Mensaje
Hola NRLABS:

Mira soy nuevo en el foro ya q me registre buscando una solucion q ustedes ya dieron con ella, necesito hacer lo mismo q tu, tengo unos 1500 correos en la bd para enviar de una vez, pero mira estuve leyendo las respuestas y analizando el script q esta rebueno, pero me quedo una duda..???, donde estas recuperando los datos de la bd para enviarlos, me refiero al nombre del email, no veo ningun SELECT FORM, o algo parecido..????.

function enorme($qcl,$rem)

a quien llama o q parametros les pasas, bueno mira estoy recien en esto de lo emails y vaya q me a costado a ver si me aclaras un poco mas la cosa.., graciasss


Eso es poarte de la diea de este foro, no entregar soluciones hechas.

Los parametros que envio en la funcion son, justamente, los datos de la sql

Te envio el codigo completo, que es especifico.

Código PHP:

<?


    
require '../func/func.php';
    
conecta_db();

    while (list (
$clave$val) = each ($_REQUEST)) 
    {
        $
$clave $val;
    }    
    
    
$sem "INSERT INTO t_emails (id_email,cuerpo,fecha,descripcion,asunto) ";
    
$sem.= "VALUES ('','".htmlentities(str_replace("\n""",str_replace("\r"""$texto)))."','".fecha($fecha)."','$descripcion','$asunto') ";
    
$qem mysql_query($sem);
    
    
$sli "SELECT LAST_INSERT_ID()";
    
$qli mysql_query($sli);
    
$rli mysql_fetch_row($qli);
    
$id_email=$rli[0];
    
    for (
$i 0$i sizeof($destinatarios); $i++) {
        
$sde "INSERT INTO t_destinatarios_email (id_email,rut) ";
        
$sde.= "VALUES ($id_email,'$destinatarios[$i]')";
        
$qde mysql_query($sde);
    }

    
$scl "SELECT t_clientes.rut as rut, t_clientes.nombre as nombre, t_clientes.apellido as apellido, ";
    
$scl.= "t_clientes.email_1 as email_1, t_clientes.domicilio as direccion ";
    
$scl.= "FROM t_destinatarios_email, t_clientes WHERE t_destinatarios_email.id_email=$id_email AND t_clientes.rut=t_destinatarios_email.rut ";
    
$qcl mysql_query($scl);

    
$sem "SELECT * FROM t_emails WHERE id_email = $id_email";
    
$qem mysql_query($sem);
    
$rem mysql_fetch_array($qem);

    
    
set_time_limit(84000);
// para navegadores q requieren una cantidad de bytes antes de mostar un contenido.
for($i=0;$i<200;$i++) 

    echo 
".";
    
}


echo 
"<br>Los emails estan siendo enviados, puede cerrar esta ventana";

        
flush();





    
    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 "mail..com";
      
$mail->SMTPAuth true;
      
$mail->Username ""
      
$mail->Password "";
      
$mail->From "";
      
$mail->FromName ""
         
$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("ics.cl","Error envio lista correo",$msg_E); }
   
   
  
// flush();
    



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

register_shutdown_function(enorme,$qcl,$rem);

?>