Saludos
Intenta de la siguiente manera
Código PHP:
<?php
function boletin() {
require_once "includes/class.phpmailer.php";
$hora = date(" H:i:s");
include_once 'db2.php';
$mail->PluginDir = "includes/";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Mailer = "smtp";
$mail->Username = "[email protected]";
$mail->Password = "clave";
//remitente
$mail->From = "[email protected]";
$mail->FromName = "misitio.com";
$mail->Timeout=30;
$mail->Subject = "Portal de ";
//en AltBody se envía el mensaje en texto plano
$mail->AltBody = "mensaje en texto plano";
$mensaje="mensaje en formato html";
$mail->MsgHTML($mensaje);
$EmailsNoEnviados= mysql_query("SELECT correo FROM Contactos WHERE enviado = 1 LIMIT 2");
while ($direccion = mysql_fetch_array($EmailsNoEnviados)) {
$correoElectronico=$direccion['correo'];
$mail->AddAddress($correoElectronico,"Estimado usuario/a");
$sqlEnviado = mysql_query("UPDATE Contactos SET enviado = 2 WHERE correo = '" . $direccion['correo'] . "'");
}
$mail->IsHTML(true);
//la variable $exito tendra el valor true si se envia el mensaje
$exito = $mail->Send();
//Revisa si quedan emails por enviar
$EmailsNoEnviados = mysql_query("SELECT correo FROM Contactos WHERE enviado = 1 LIMIT 2");
if (mysql_num_rows($EmailsNoEnviados)>0) {
echo $hora."<font size='3'><b> Inicio de espera </b><br>";
sleep(10); boletin();
}
if (mysql_num_rows($EmailsNoEnviados)==0) { echo $hora."<font size='3'><b> Envio del boletín finalizado completamente</b>";}
}
boletin();
?>