Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema al enviar correo de felicitacion

Estas en el tema de problema al enviar correo de felicitacion en el foro de PHP en Foros del Web. Buenas! tengo este problema que no encuentro como solucionarlo... resulta que necesito enviar un correo de felicitacion a los usuarios que cumplan años en el ...
  #1 (permalink)  
Antiguo 21/07/2013, 16:10
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Pregunta problema al enviar correo de felicitacion

Buenas!

tengo este problema que no encuentro como solucionarlo...

resulta que necesito enviar un correo de felicitacion a los usuarios que cumplan años en el di exacto, la coneccion a la base de datos, recuperacion de datos y el armado del formato para enviar no es problema, esta listo y funciona ahora mi problema radica en que solo se envia el primer correo, los demas NO se envian

no es una cuestion de limites ya que no se envian mas de 10 correos por dia, ya que esta en cron job que se ejecuta solo una vez, y el host que es de pago me permite 500 por hora..

mi codigo es el siguiente:

Código PHP:
  while ($row mysql_fetch_assoc($result)) {  //inicia Ciclo de Busqueda en base de datos
   
include ("basearch.php");
   
$partesFecha=explode(' de '$nacimiento);
     switch(
$partesFecha[1]){
        case 
"Enero"$mes "01"; break;
        case 
"Febrero"$mes "02"; break;
        case 
"Marzo"$mes "03"; break;
        case 
"Abril"$mes "04"; break;
        case 
"Mayo"$mes "05"; break;
        case 
"Junio"$mes "06"; break;
        case 
"Julio"$mes "07"; break;
        case 
"Agosto"$mes "08"; break;
        case 
"Septiembre"$mes "09"; break;
        case 
"Octubre"$mes "10"; break;
        case 
"Noviembre"$mes "11"; break;
        case 
"Diciembre"$mes "12"; break;
        }
   if (
$diahoy == $partesFecha[0] and $mes == $meses=date("m") and $STATUS=="ACTIVO"){ //Inicia Condicion de Dia, activo
//      $i++;
      
echo $partesFecha[0]." - ".$nombre." Felicitacion Enviada ".$email."<br>";
      
$log fopen("cumplefeliz.txt""a");
      
fwrite($logdate("d/m/Y @ H:i")." > ".$nombre." \n");
      
fclose($log);
//Enpieza Envio de Correo
error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('America/Toronto');
include(
'config.php');
include(
'class.smtp.php');
include(
'class.phpmailer.php');
include (
"obteneredad.php");
      
$eda obteneredad($nacimiento);
      
$Titulomail="Feliz Cumpleaños";
      
$descripcion="te Felicita por tu Cumpleaños";
      
$descripalt="te Felicita por tu Cumpleaños";
      
$correocopia ="[email protected]";
$localserver=$_SERVER['SERVER_NAME'];
$mail             = new PHPMailer();
$body             '
<b><CENTER>¡F E L I C I D A D E S! </CENTER></b><br><br>
C. <b>'
.$nombre.'</b>.<br>
Presente.<br><BR><BR>
El Dia de Hoy '
.$partesFecha[0].' de '.$partesFecha[1].' que es <b>Tu Cumpleaños Numero '.$eda.'</b>,
P.D.3. Si Considera este Correo Inadecuado favor de Comunicarse a la Comision de Registro al
'
;
$mail->IsHTML(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       $hostmail// SMTP server
$mail->Port       $portmail;                    // set the SMTP port for the GMAIL server 465 587
$mail->SMTPAuth   true;                  // enable SMTP authentication
$mail->Username   $usuariomail// SMTP account username
$mail->Password   $passmail;        // SMTP account password
$mail->SetFrom($correoemail$Titulomail);
$mail->AddReplyTo($correoresp,$Titulomail);
$mail->Subject    $descripcion;
$mail->AltBody    $descripalt// optional, comment out and test
$mail->MsgHTML($body);
$address $email;    //correo Asignado
$mail->AddAddress($address$descripmail);  //envio Directo
if(!empty($emailc)){
   
$mail->AddCC($emailc);  //copia de Correo 
   
}
$mail->AddBCC($correocopia);  //Copia Oculta

if(!$mail->Send()) {echo "Error de envio : " $mail->ErrorInfo;}
//Termina Envio de Correo
      
//Termina la condicion de Envio
}//Termina Ciclo de Busqueda en base de datos 
Alguien que me pueda Orientar de que esta pasando?

de antemano Gracias por resonder!!

Saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #2 (permalink)  
Antiguo 21/07/2013, 16:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al enviar correo de felicitacion

¿Estás depurando todo lo que haces en algún lado?

De otra forma es complicado deducir una causa, no creas que leyendo código se puede adivinar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/07/2013, 16:52
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: problema al enviar correo de felicitacion

buenas!

Gracias por responder.. si ya se que solo leyendo no se puede resolver, de hecho ya llevo casi 30hrs tratando de encontrar el condenado error y ya me tiene ... que para que te cuento...

pues mira, eh checado linea por linea y la consulta si se realiza correctamente, como puedes ver en el codigo hago que se escriba en un archivo y se muestre en pantalla para verificar la consulta.
como ya dije se ejecuta perfecto, muestra todo, no marca error, lee bien los datos y "arma" bien los correos
envia el primero bien y llega bien, a partir del segundo ya no envia pero... si guarda la informacion de la lectura
que es lo que me desconcierta...

eh buscado para ver si pudiera ser el phpmailer el problema al estar dentro del while por aquello del tiempo de envio o algo asi pero no encuentro nada que me diga algo al respecto
no se si ya mis ojos no lo ven pero ya estoy que tiro la toalla :p

en fin... eso es lo que eh verificado y mis pruebas que he hecho...

no se si a eso concretamente te referias si no es asi por favor dime porque realmente ando muy bloqueado :(

de nuevo gracias y saludos!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #4 (permalink)  
Antiguo 21/07/2013, 16:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al enviar correo de felicitacion

Pues no me refería a eso, es decir, deberías ir guardando en un log lo que haces con tus scripts, y analizar todos los resultados ahí.

Porque es obvio que si tu haces las pruebas claro que funcionan, pero una cosa es eso y otra que se ejecuten solas, si no tienes más información útil es imposible ayudar así de la nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/07/2013, 17:28
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problema al enviar correo de felicitacion

OFFTOPIC:

Todo eso va al COMIENZO y no por la mitad de tu script......

Código PHP:
Ver original
  1. error_reporting(E_STRICT);
  2. date_default_timezone_set('America/Toronto');
  3. include('config.php');
  4. include('class.smtp.php');
  5. include('class.phpmailer.php');
  6. include ("obteneredad.php");

Otra cosa .. haces un include dentro de un While() ... imagino sabes no es lo mas usual

Código PHP:
Ver original
  1. include ("basearch.php");

Y... <CENTER> esta depredicada en HTML5
__________________
Salu2!
  #6 (permalink)  
Antiguo 21/07/2013, 21:04
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: problema al enviar correo de felicitacion

ok, Gracias por las observaciones...

corrigiendo y ya comentare

por el lado del log, no lo estoy probando en local y no tengo acceso a los log, mi unico "log" es el creado como registro de envio, pero creo que instalare el wamp en local para ver que sucede, gracias de neuvo a los dos y ya comentare
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #7 (permalink)  
Antiguo 21/07/2013, 22:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: problema al enviar correo de felicitacion

<saludos>
Preguntas
1. Que tiene el archivo basearch.php?
2. De donde toman valor las variables $STATUS y $nacimiento? (Imagino que es parte del punto 1, pero mejor pregunto)

Si como dices envía el primer correo y el resto no,
entonces lo primero a revisar sería las condiciones del if inicial,
y antes de este mostrar las variables que se evaluan dentro de cada iteración del while.

Eso por ahora, suerte con eso!

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #8 (permalink)  
Antiguo 22/07/2013, 00:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: problema al enviar correo de felicitacion

Estas implementado mal el sistema, no puedes re-configurar PHPMailer en cada loop y esperar que funcione correctamente, aparte, es necesario llamar al metodo $mail->clearAddresses() al final en cada loop para que se pueda enviar correctamente, pero te repito, no debes meter todo ese código dentro del loop, solo se debe meter el código que cambia, por ejemplo el cuerpo/body del mensaje o el titulo/subject y obviamente el addaddress....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 22/07/2013, 10:30
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: problema al enviar correo de felicitacion

Gracias a todos por responder...

ya esta funcionando, pero de acuerdo con las observaciones de Nemutagk, el que funcione no quiere decir que este bien hecho el codigo por lo que continuo el tema para hacerlo CORRECTAMENTE, no solo que funcione...

mortiprogramador:
1.- te comento que basearch.php solamente es para que iguale los valores de la base de datos y les pone a variables mas faciles de manejar ej. $nombre=$row['nombre'];
2.- respondiendo a tu pregunta dos, precisamente ahi en el basearch.php toma el valor de la base de datos....
Nada mas por eso lo deje dentro del loop


Nemutagk:
ya le modifique con $mail->clearAddresses() pero me marca error y ya no se envia nada al poner la linea de codigo
el error es "ERROR SMTP"

Italiko:
si ya <center> no es valido en html5 cual es ahora?

por cierto ya saque las varibles y el include del while como efectivamente hicieron la observacion, no analice a la hora de ponerlo puesto que antes ya estaba declarados algunos como el config.php...

De nuevo gracias a todos y..
saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #10 (permalink)  
Antiguo 22/07/2013, 10:50
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problema al enviar correo de felicitacion

@HalconVigia: en HTML5 lo que se puede hacer con CSS no se hace mas con HTML... asi seria "text-align:center"
__________________
Salu2!

Etiquetas: correo, html, mysql, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:52.