Foros del Web » Programando para Internet » PHP »

boletin de noticias, ¿me ayudan?

Estas en el tema de boletin de noticias, ¿me ayudan? en el foro de PHP en Foros del Web. hola amigos he estado siguiendo un tutorial de cristalab.com para hacer el envio de emails, ya tengo las clases esas de las que habla en ...
  #1 (permalink)  
Antiguo 29/04/2010, 03:40
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Pregunta boletin de noticias, ¿me ayudan?

hola amigos he estado siguiendo un tutorial de cristalab.com para hacer el envio de emails, ya tengo las clases esas de las que habla en mi servidor y un archivo llamado enviar.php que si pongo un email si que lo envia correctamente, pero me podriais ayudar para ver como puedo enviarlo a todos los usuarios de una web?? el codigo que tengo es este:

Código PHP:
<?php 
require("class.phpmailer.php"); //Importamos la función PHP class.phpmailer 
 
$mail = new PHPMailer(); 
 
Luego tenemos que iniciar la validación por SMTP
$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 "************"// Password 
 
 
$mail->Host "localhost"
$mail->From "[email protected]"
$mail->FromName "Nombre a mostrar del Remitente"
$mail->Subject "Asunto"
$mail->AddAddress("[email protected]","Nombre a mostrar del Destinatario"); 
 
$mail->WordWrap 50
 
$body  "Hola, este es un…"
$body .= "<font color='red'> mensaje de prueba</font>"
 
$mail->Body $body
 
$mail->Send(); 
 
 
// Notificamos al usuario del estado del mensaje 
 
if(!$mail->Send()){ 
   echo 
"No se pudo enviar el Mensaje."
}else{ 
   echo 
"Mensaje enviado"

 
?>
  #2 (permalink)  
Antiguo 29/04/2010, 04:14
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: boletin de noticias, ¿me ayudan?

Pues....como no nos digas cual es tu tabla de usuarios y que campos tienes...
  #3 (permalink)  
Antiguo 29/04/2010, 04:17
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

Los datos que habria que sacar serian: de la tabla "usu" el campo "email" es el unico dato que quiero sacar de cada usuario para enviar el boletin.
  #4 (permalink)  
Antiguo 29/04/2010, 07:30
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: boletin de noticias, ¿me ayudan?

Seria algo asi:

Código PHP:
Ver original
  1. $mail->IsSMTP();  
  2. $mail->SMTPAuth = true; // True para que verifique autentificación de la cuenta o de lo contrario False  
  3. $mail->Username = "[email protected]"; // Cuenta de e-mail  
  4. $mail->Password = "************"; // Password  
  5.  
  6.  
  7. $mail->Host = "localhost";  
  8. $mail->From = "[email protected]";  
  9. $mail->FromName = "Nombre a mostrar del Remitente";  
  10. $mail->Subject = "Asunto";  
  11.  
  12. include('conectar.php');//archivo que realiza la conexion a la base de datos
  13. $sql="select nombre,email from usuarios";
  14. $res=mysql_query($sql,$link);
  15. while ($datos_usuarios = mysql_fetch_array($res))
  16. {
  17. $mail->AddAddress($datos_usuarios[email],$datos_usuarios[nombre]);  
  18.  
  19. $mail->WordWrap = 50;  
  20.  
  21. $body  = "Hola ".$datos_usuarios[nombre] .", este es un…";  
  22. $body .= "<font color='red'> mensaje de prueba</font>";  
  23.  
  24. $mail->Body = $body;  
  25.  
  26. $mail->Send();  
  27. }
  #5 (permalink)  
Antiguo 01/05/2010, 23:32
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

Lo acabo de probar y ahora no es que vaya bien sino que se pasa :P jajajaja me ha llegado 3 veces repetidos el email ¿eso por que sucede?
  #6 (permalink)  
Antiguo 02/05/2010, 17:33
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

Enronces seria asi:
Código HTML:
Ver original
  1. <?php  
  2. require("class.phpmailer.php"); //Importamos la funci&#243;n PHP class.phpmailer  
  3.  
  4. $mail = new PHPMailer();  
  5.  
  6. Luego tenemos que iniciar la validaci&#243;n por SMTP:  
  7. $mail->IsSMTP();  
  8. $mail->SMTPAuth = true; // True para que verifique autentificación de la cuenta o de lo contrario False  
  9. $mail->Username = "[email protected]"; // Cuenta de e-mail  
  10. $mail->Password = "************"; // Password  
  11.  
  12.  
  13. $mail->Host = "localhost";  
  14. $mail->From = "[email protected]";  
  15. $mail->FromName = "Nombre a mostrar del Remitente";  
  16. $mail->Subject = "Asunto";  
  17.  
  18. include('conectar.php');//archivo que realiza la conexion a la base de datos
  19. $sql="select nombre,email from usuarios";
  20. $res=mysql_query($sql,$link);
  21. while ($datos_usuarios = mysql_fetch_array($res))
  22. {
  23. $mail->AddAddress($datos_usuarios[email],$datos_usuarios[nombre]);  
  24.  
  25. $mail->WordWrap = 50;  
  26.  
  27. $body  = "Hola ".$datos_usuarios[nombre] .", este es un";  
  28. $body .= "<font color='red'> mensaje de prueba</font>";  
  29.  
  30. $mail->Body = $body;  
  31.  
  32. $mail->Send();  
  33. }
  34.  
  35. // Notificamos al usuario del estado del mensaje  
  36.  
  37. if(!$mail->Send()){  
  38.    echo "No se pudo enviar el Mensaje.";  
  39. }else{  
  40.    echo "Mensaje enviado";  
  41. }  
  42.  
  43. ?>
Hey pero te funciona, yo tambien anba bsucando algo asi pero no encontraba si tengo un sistema pero no es muy bueno quisiera saber si con este sistema puedo enviar con contenido html ??

------------------------------
Escucha la mejor [URL="http://mundoperfec.com/"]musica[/URL]

Última edición por ziin; 02/05/2010 a las 17:43 Razón: Por falta de un detalle
  #7 (permalink)  
Antiguo 03/05/2010, 05:46
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

que va me sigue mandando 3 veces el email a cada direccion de email.

Cita:
Hey pero te funciona, yo tambien anba bsucando algo asi pero no encontraba si tengo un sistema pero no es muy bueno quisiera saber si con este sistema puedo enviar con contenido html ??
Esto cuando acabe de probarlo y demas ya te informo si sirve o no :D
  #8 (permalink)  
Antiguo 04/05/2010, 10:02
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

no he conseguido solucionar este tema, ¿alguien sabe porque me manda 3 veces el email a cada direccion de email?
  #9 (permalink)  
Antiguo 04/05/2010, 10:05
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: boletin de noticias, ¿me ayudan?

Quita el AddAdress (O comentalo), y pon un echo $datos_usuarios["email"], asi podremos ver si el problema es que el bucle se repite demasiadas veces, doy por hecho que en la base de datos no están repetidos, no?
  #10 (permalink)  
Antiguo 04/05/2010, 10:07
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: boletin de noticias, ¿me ayudan?

Creo que ya sé lo que pasa, el while, cierralo justo despues de la linea
$mail->AddAddress($datos_usuarios[email],$datos_usuarios[nombre]);
No te esperes hasta al final para cerrarlo, justo después de esa linea lo cierras y me comentas como va.

Un saludo
  #11 (permalink)  
Antiguo 04/05/2010, 17:18
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

vale ya hemos mejorado, ahora solo me lo envia dos veces a cada email, y los emails no estan repetidos en la base de datos ;) ¿alguien sabe a que se debe?

Cita:
Quita el AddAdress (O comentalo), y pon un echo $datos_usuarios["email"], asi podremos ver si el problema es que el bucle se repite demasiadas veces, doy por hecho que en la base de datos no están repetidos, no?
he echo esto que indicas y solo pone cada direccion de email una vez y al final "mensaje enviado" pero incluso poniendolo solo una vez llegan dos copias eso por que es?
  #12 (permalink)  
Antiguo 05/05/2010, 10:03
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: boletin de noticias, ¿me ayudan?

¿Has realizado lo que te puse en mi segunda respuesta?
  #13 (permalink)  
Antiguo 05/05/2010, 10:08
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

si si haciendo lo de la segunda es el primer trozo que puse antes solo llega dos veces en lugar de 3
  #14 (permalink)  
Antiguo 05/05/2010, 10:08
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: boletin de noticias, ¿me ayudan?

Muestra nos como te quedo el código.

Un saludo
  #15 (permalink)  
Antiguo 05/05/2010, 11:40
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años
Puntos: 1
Respuesta: boletin de noticias, ¿me ayudan?

Código PHP:
$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 "************"// Password  
  
  
$mail->Host "localhost";  
$mail->From "[email protected]";  
$mail->FromName "Nombre a mostrar del Remitente";  
$mail->Subject "Asunto";  

include(
'conectar.php');//archivo que realiza la conexion a la base de datos
$sql="select email from boletin";
$res=mysql_query($sql,$link);
while (
$datos_usuarios mysql_fetch_array($res))
{
$mail->AddAddress($datos_usuarios[email]);  
 }
$mail->WordWrap 50;  
  
$body  "Hola ".$datos_usuarios[email] .", este es un…";  
$body .= "<font color='red'> mensaje de prueba</font>";  
  
$mail->Body $body;  
  
$mail->Send(); 
ahora mismo lo tengo tal como esta aqui y me llega ahora solo 2 veces a cada email en vez de 3

Etiquetas: boletin
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 16:48.