Foros del Web » Programando para Internet » PHP »

envio de mails con phpmailer

Estas en el tema de envio de mails con phpmailer en el foro de PHP en Foros del Web. hola Voy a pegar el código con el que envio un mail a todos los contactos de una lista. El sistema envia los correos correctamente ...
  #1 (permalink)  
Antiguo 08/11/2010, 20:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
envio de mails con phpmailer

hola
Voy a pegar el código con el que envio un mail a todos los contactos de una lista.
El sistema envia los correos correctamente pero hay dos problemas que no he podido solucionar.
Uno de ellos es que cada usuario al que le envio ve todos los otros destinatarios del mensaje y no es lo que yo quiero que suceda.

Y el otro problema es que dentro del mail hay dos link que usan una variable que es $correoElectonico.
Simplemente esa variable no se carga pues toma el valor despues que la quiero usar dentro del mensaje del email.

Por supuesto que he intentando poner el $mensaje mas abajo en el código pero me manda errores de envio, en cambio poniendo el texto del mensaje arriba del código se envia todo perfectametne pero los links del mensaje no funcionan
Espero haber sido claro
Gracias por ayudarme
Código PHP:
session_start();
 
set_time_limit(0);
  include 
'db2.php';
   
date_default_timezone_set('America/Montevideo');
   
setlocale(LC_TIME'spanish');
   
$hora date(" H:i:s");
   echo 
$hora"<font size='3'><b> Inicio envio de Boletín </b><br>";
   
   function 
boletin() {
   include 
'db2.php';
   require 
"includes/class.phpmailer.php";
   
$hora date(" H:i:s");
   
$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.uy";
   
$mail->Timeout=30;
   
$mail->Subject "Portal de... ";
   
//en AltBody se envía el mensaje en texto plano
   
$mail->AltBody "Bienvenido a misitio.uy".chr(10)."Lamentablemente su cliente de correo no permite mostrar este mensaje correctamente.".chr(10)."Para confirmar su registro y validar su dirección de correo electrónico".chr(10)."ingrese en este enlace".chr(10)."http://www.misitio.com.uy/valUsuario.php?emailUsuario='".$email."'&passwordUsuario='".$password.chr(10)."Le recomendamos que imprima esta página para conservar el enlace de verificación por si lo llega a necesitar.";
   
//mensaje en formato HTML
$mensaje=
"<html>
<body>
<head><title><b></b></center></head>"
;
$mensaje.= "<p><align='center'><font size=2 color='#999999'>Si no visualiza correctamente este mail haga click ";
$mensaje.= '<a href="http://wwwmisitio.com.uy/EmailBienv.php?email='.$correoElectronico.'">ingrese aquí</a>';
$mensaje.= "<p><font size=5 color='black'<b>misitio.com</b><br></p>";
$mensaje.= "<font size=2 color='black'>Estimado usuario/a ,<br>";
$mensaje.="quite las partes de mensaje inecesarias para resolver el problema";
$mensaje.= "<p><font size=2 color='black'>Si no desea volver a recibir más información de nuestro portal ingrese";
$mensaje.= '<a href="http://www.buscopropiedades.com.uy/desuscribirse.php?email='.$correoElectronico.'""> en éste enlace</a></p>';
$mensaje.="
</body>
</html>"
;

   
$mail->MsgHTML($mensaje);
   
$EmailsNoEnviadosmysql_query("SELECT correo FROM Contactos  WHERE enviado = 1 LIMIT 10") or die("Error :<br>MySQL dice: ".mysql_error());
   while (
$direccion mysql_fetch_array($EmailsNoEnviados)) {
   
$correoElectronico=$direccion['correo'];echo $correoElectronico."<br>";
   
$mail->AddAddress($correoElectronico,"Estimado usuario/a");
   
$sqlEnviado mysql_query("UPDATE Contactos SET enviado = 2 WHERE correo = '" $direccion['correo'] . "'") or die("Error :<br>MySQL dice: ".mysql_error());

                                                             }
   
$mail->IsHTML(true);
   
$Enviado=$mail->Send();

                       }
   
boletin(); 
  #2 (permalink)  
Antiguo 08/11/2010, 20:42
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: envio de mails con phpmailer

Saludos


Cita:
Uno de ellos es que cada usuario al que le envio ve todos los otros destinatarios del mensaje y no es lo que yo quiero que suceda.
Podrias enviarlo a medida que vas recorriendo el ciclo


Código PHP:
   $mail->IsHTML(true);
while (
$direccion mysql_fetch_array($EmailsNoEnviados)) {
   
$correoElectronico=$direccion['correo'];echo $correoElectronico."<br>";
   
$mail->AddAddress($correoElectronico,"Estimado usuario/a");
   
$sqlEnviado mysql_query("UPDATE Contactos SET enviado = 2 WHERE correo = '" $direccion['correo'] . "'") or die("Error :<br>MySQL dice: ".mysql_error());


   
$Enviado=$mail->Send();
                                   } 
y el otro si no lo entendí muy bine
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 08/11/2010, 21:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: envio de mails con phpmailer

Con el cambio que me sugeriste envio tres email a cada usuario de la lista y sigue apareciendo todos los demas remitentes en el mail que le envio al usuario

Y respecto a la segunda pregunta lo que quise decir es que dentro del cuerpo del mensaje hay dos link que usan una variable $correoelectronico pero llega vacia porque toma valor despues de ser usada pero las pruiebas que he eccho , solo me funciono cuando saque dentro de los bucles de codigo el texto del mensaje
Espero ahora se entienda
  #4 (permalink)  
Antiguo 09/11/2010, 07:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 178
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: envio de mails con phpmailer

Hace tiempo que no uso phpmailer pero creo recordar que hay un metodo para copias ocultas llamada AddBCC().
Código PHP:
Ver original
  1. $mail->AddBCC("[email protected]");

Agregado de esta manera no se ve su dirección en los demas mails.

Etiquetas: envio, mails, phpmailer
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 08:47.