Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/09/2010, 10:39
KbzaJunior
 
Fecha de Ingreso: septiembre-2009
Ubicación: Sevilla
Mensajes: 37
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Script para recorrer fichero

Me auto contesto:

Realizando los 3 foreach, en el mas interno, doy la orden de que me mande un mail, todo perfecto por ahora.
Solo me queda, limitar los envios de 400 en 400 al dia( por ejemplo ).
La idea es no colapsar el servidor que procesa estos mais, para que no le llegen 4000 mails de sopeton.

Pego el codigo que me selecciona los registros de la BD, e inmediatamente despues le cambio el booleano 1 ( es decir, se han mandado )
Código:
$sql="SELECT id FROM numeros WHERE enviado=0";
if($resultado=mysql_query($sql,$c)){
			while($v=mysql_fetch_row($resultado)){
				foreach($v as $valor){
    					$sql1="SELECT numero FROM numeros WHERE id=$valor";
    					if($resultado1=mysql_query($sql1,$c)){
    						while($v1=mysql_fetch_row($resultado1)){
    							foreach($v1 as $valor1){
    								$sql2="SELECT mensaje FROM numeros WHERE id=$valor";
    								if($resultado2=mysql_query($sql2,$c)){
    									while($v2=mysql_fetch_row($resultado2)){
    										foreach($v2 as $valor2){
    											echo $valor." ".$valor1." ".$valor2."<br>";
    											$update="UPDATE numeros SET enviado=1 WHERE id=$valor";//establezco que ya se han mandado
    											mysql_query($update,$c);
    											
    											$subject=$valor1;
    											$html=$valor2;
    										try{
												$xmail = new PHPMailer(true);
												$xmail->SetLanguage("es","PhpMailer/language/");
												$xmail->From = $sender;
												$xmail->Subject = $subject;
												$xmail->Body = $html;
												$xmail->IsHTML (true);
												$xmail->IsSMTP();
							
												$xmail->Host = $config["host"];
												$xmail->Port = $config["port"];
												$xmail->SMTPAuth = $config["auth"];
												$xmail->Username = $config["username"];
												$xmail->Password = $config["password"];
							
													foreach($recipients as $k => $recipient){
														$xmail->AddAddress($recipient);
														$xmail->Send();
														$xmail->ClearAddresses();
													}
											} catch (phpmailerException $e) {
												echo $e->errorMessage();
											}
    										
    										}
    									}
    								}
    							}    							
    						}
    					}
    			}	
			}