Foros del Web » Programando para Internet » PHP »

Envio de e-mail con clase PHPMailer

Estas en el tema de Envio de e-mail con clase PHPMailer en el foro de PHP en Foros del Web. Hola, buen dia.... Mi problema es el siguiente: Necesito enviar noticias a los correo que tengo almacenados en una base de datos, buscando informacion en ...
  #1 (permalink)  
Antiguo 25/02/2009, 09:12
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 1
Envio de e-mail con clase PHPMailer

Hola, buen dia....

Mi problema es el siguiente:

Necesito enviar noticias a los correo que tengo almacenados en una base de datos, buscando informacion en la red me encontre con esta clase (PHPMailer), probe el ejemplo y funciono correctamente, pero el problema es que yo requiero mandar a los email's, consultas de base de datos (solo select) y no se como hacer que se muestren dichas consultas en el correo enviado...

Aqui les dejo el ejemplo de como lo hago para ver si alguien me pudiera orienta en que es lo que hago mal.

1.- Esta es la parte donde saco los correos para el envio y solo a los confirmados se le enviará...y de otra tabla las noticias que necesito muestre el correo.

$q="SELECT email FROM usuario_suscriptores, suscribe where suscribe.id_usuario=usuario_suscriptores.id_usuari o and estado=1";
$c=consulta($q);
while($res=mysql_fetch_array($c))
{

$numero=rand(1,10);
if($numero>4)
{?>
<script>principales(<?=$ciudad?>);</script>
<div id="principales">
<div align="center"></div>
</div>
<? }
if($numero<=4){
$linknota=conectarm();
$qs="select p.id from portadas p,noticias n, autores a, agencias ag where p.tipo='P' and p.id_noticia=n.id and n.idautor=a.ID and a.idagencia=ag.id and (ag.ciudad=$ciudad or ag.ciudad=1 or ag.ciudad=3) order by p.id desc limit 1";
$rs=consulta($qs);
$l=mysql_fetch_array($rs);
$portada_id=$l[id];
$qs="select * from portadas where id=$portada_id";
$rs=consulta($qs);
$p=mysql_fetch_array($rs);
$q="select * from noticias where id=$p[id_noticia]";
$r=consulta($q);
$nota1=mysql_fetch_array($r);
$q="select * from noticias where id=$p[id_noticia2]";
$r=consulta($q);
$nota2=mysql_fetch_array($r);
$q="select * from noticias where id=$p[id_noticia3]";
$r=consulta($q);
$nota3=mysql_fetch_array($r);
desconectarm($linknota);?>

<?

2.- Aqui es donde pretendo, se muestra el contenido de las consultas en el mail.
y las cuales necesito que esten en tablas.
$body = "
<table width=\"99%\" border=\"0\">
<tr>
<td><div class=\"tituloP\"><?=htmlentities(limpia(".$nota1. "[titulo]))?></div></a>
<a href=\"/vernota.php?id=<?echo ".$p."[id_noticia]?>\"class=\"textoP\"><div class=\"textoP\"> <? echo htmlentities(limpia(".$nota1."[texto_portada]));?></div></a>
<!-- MOSTRAR LAS NOTICIAS RELACIONADAS A LA NOTA 1-->
<? if(($nota1[id_rel]!=0) || ($nota1[id_rel2]!=0) || ($nota1[id_rel3]!=0)){?>
<div class=\"columna\"><strong>Noticias relacionadas:</strong></div>
<? }?>";
$linknota=conectarm();
$q="select titulo from noticias where id=$nota1[id_rel]";
$r=consulta($q);
$ln=mysql_fetch_array($r);
desconectarm($linknota);
$body.= "<a href=\"/vernota.php?id=<?echo ".$nota1[id_rel]."?>\" class=\"textoP\"> <div class=\"textoP\"> <? echo htmlentities(limpia(".$ln[titulo]."));?></div></a>";

// Configurar Email
$mail->Body = $body;
$mail->AddAddress($res["email"]);
}
// Enviar el email
if(!$mail->Send()) {
//echo "Error al enviar a: " . $res["email"] . "<br>";
}
$mail->ClearAddresses();
}

No se si supe explicarme... ojala me puedan ayudar, de antemano Gracias!!
  #2 (permalink)  
Antiguo 25/02/2009, 09:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Envio de e-mail con clase PHPMailer

:P Lo primero es, usa variables mas descriptivas. Yo me perdi viendo tantas variables $c, $r, etc...

Lo segundo, estas consultas:
select * from noticias where id=$p[id_noticia]
select * from noticias where id=$p[id_noticia2]
select * from noticias where id=$p[id_noticia3]
Las puedes unificar usando un OR o un IN de MySQL
$var = "{$p['id_noticia']},{$p['id_noticia2']},{$p['id_noticia3']}";
SELECT * FROM noticias WHERE id IN ($var)

Y lo tercero (y solucion a tu problema):
Cita:
<td><div class=\"tituloP\"><?=htmlentities(limpia(".$nota1. "[titulo]))?></div></a>
Estas usando mal la sintaxis, de hecho ni necesitas comillas:
<td><div class=\"tituloP\"><?=htmlentities(limpia($nota1['titulo']))?></div></a>

El error se repite varias veces.
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 06:54.