Estoy preparando un codigo para ejecutarlo como tarea programada y que envie 10 emails a la hora ( por probar), el bucle lo que hace es cargar los datos extaridos de la base de datos, enviar el email y marcar en la tabla de la base de datos como enviado.
Código PHP :
$i=0
while($user1=mysql_fetch_array($query_user1)){
$consulta_estado = "UPDATE hoja1 SET enviado = true WHERE email = '".$user1["email"]."'";
$query_estado = mysql_query($consulta_estado, $conectar);
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->IsSMTP();
$mail->SMTPAuth = true; // True para que verifique autentificación de la cuenta o de lo contrario False
$mail->Username = "[email protected]"; // Cuenta de e-mail
$mail->Password = "pass"; // Password
$mail->Host = "smtp.email.com";
$mail->From = "[email protected]";
$mail->FromName = "Prueba";
$mail->Subject = "Asunto_prueba";
$mail->WordWrap = 50;
$mail->AddAddress ($user1["email"],$user1["nombre"]." ".$user1["apellidos"]);
echo $user1["email"]."<br>";
$body = $file;
$mail->Body = $body;
$mail->Send();
if($i==10){
exit();
}
$i++;
}
echo $i;
?>Casi todo lo hace bien pero hay un problema, siempre deja 1 registro sin marcar como enviado en la base de datos.
Otra cosa, ¿Se podría optimizar el bucle?, es decir sacar parámetros del phpmailer.
Un Saludo.
