Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2010, 15:16
RicardoUY
 
Fecha de Ingreso: septiembre-2010
Mensajes: 62
Antigüedad: 13 años, 7 meses
Puntos: 0
Envio de correo a todos los contactos

hola
Hace un buen rato estoy intentando solucionar un error en mi codigo y no lo encuentro.
Ante todo aclaro que descarte incluir el mensaje en formato html pues eso funciona perfectamente.
Este codigo funciona correctamente y me imprime en pantalla todos los emails que estan en la tabla correspondient.e haciendo los bucles tal como quiero que los haga.
Pero yo en realidad lo que quiero es que cada ciclo envie un correo con phpmailer
El codigo que uso para envio con phpmailer funciona perfectamente
Mas abajo pego el codigo con el agregado del envio de los mails
pero lo que sucede que envia uno y deja de enviar porque no le llega a phpmailer la direccion de correo
Gracias por ayudar,e a encontrar que estoy haciendo mal



Código PHP:
   function boletin() {
   
$hora date(" H:i:s");
   include 
'db2.php';
   
$EmailsNoEnviadosmysql_query("SELECT correo FROM Contactos  WHERE enviado = 1 LIMIT 2");
   echo 
"<font size='3'><b>Restan emails pendientes para ser enviados </b><br>";
   
$bucle=0;
   while (
$direccion mysql_fetch_assoc($EmailsNoEnviados)) {
   
$bucle=$bucle +1; echo "bucle ".$bucle."<BR>";

echo 
"Contacto de la tabla  ".$direccion['correo']."<br>";
$sqlEnviado mysql_query("UPDATE Contactos SET enviado = 2 WHERE correo = '" $direccion['correo'] . "'");
                                                             }
//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(); 
Código PHP:
   function boletin() {
   
$hora date(" H:i:s");
   include 
'db2.php';
   
$EmailsNoEnviadosmysql_query("SELECT correo FROM Contactos  WHERE enviado = 1 LIMIT 2");
   echo 
"<font size='3'><b>Restan emails pendientes para ser enviados </b><br>";
   
$bucle=0;
   while (
$direccion mysql_fetch_assoc($EmailsNoEnviados)) {
   
$bucle=$bucle +1; echo "bucle ".$bucle."<BR>";
//codigo para el envio de los mails
 
require "includes/class.phpmailer.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);
$mail->AddAddress($direccion['correo'],"Estimado usuario/a");
$mail->IsHTML(true);
//la variable $exito tendra el valor true  si se envia el mensaje
$exito $mail->Send();
echo 
"Enviado ".$direccion['correo']."<br>";
$sqlEnviado mysql_query("UPDATE Contactos SET enviado = 2 WHERE correo = '" $direccion['correo'] . "'");
                                                             }
//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(); 
Simplemente agrego el codigo para el envio del mail y deje de funcionar correctamente y creo que no altero ningun proceso
Grac ias por ayudarme

Última edición por RicardoUY; 02/11/2010 a las 16:37