Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2014, 12:29
foxmonter
 
Fecha de Ingreso: marzo-2014
Mensajes: 2
Antigüedad: 10 años, 1 mes
Puntos: 0
Como enviar datos de una tabla por mail

Hola a todos, soy nuevo en este foro y en php tambien, quisiera poder encontrar una solucion a este problema que tengo...

El siguiente codigo arma una tabla desde sql server con datos de cta cte de clientes, el fin de este codigo es que se envie por mail a cada cliente su listado de cta cte.

Si al codigo le saco todo lo que es envio de mail, y lo miro por pantalla, los datos salen todos ok.

Si le agrego el codigo para enviar al mail y armo el $body.="..." con $mail->Body=$body;... por mail no me llegan los datos de la consulta solo el encabezado de la tabla...

Dejo mi codigo para ver si alguien podria ayudarme...

Código:
<?php
require_once('C:\AppServ\www\envioMail\class.phpmailer.php');
try	{
		$link=mssql_connect("xxxxxx","test","test");
		mssql_select_db("xxxxxx",$link);
		$cod=1;
		for ($cod=3;$cod<=3;$cod++) {
			$resultado=mssql_query("SELECT cta_cte_clientes.codigo_cliente, clientes.nombre, clientes.correo_electronico, cta_cte_clientes.tipo_comp, cta_cte_clientes.nro_comp, cta_cte_clientes.fecha_emision, cta_cte_clientes.debe, cta_cte_clientes.haber, cta_cte_clientes.saldo FROM cta_cte_clientes INNER JOIN clientes ON cta_cte_clientes.codigo_cliente=clientes.codigo_cliente WHERE clientes.codigo_cliente='".$cod."' AND ((cta_cte_clientes.saldo)<>0) AND ((clientes.monto_credito)>0) ORDER BY cta_cte_clientes.codigo_cliente,cta_cte_clientes.fecha_emision;",$link);
			
			// Mail Datos
			$mail=new PHPMailer();
			$mail->Mailer="smtp";
			$mail->SMTPAuth=true;
			$mail->Host="xxxxxxx.com.ar";
			$mail->Port=25;
			$mail->Username="xxxxxxxx";
			$mail->Password="xxxxxxxx";
			$mail->From="xxxxxxxxxx";
			$mail->FromName="xxxxxxxxxx";
			$mail->Timeout=60;
			$mail->IsHTML(true);
			$mail->AddAddress('xxxxxxxxxxxxxxxx');
			$mail->Subject='Prueba de mails';
			
			// Armado Bucle CtaCte
			$body.="
			<html>
			<head>
			</head>
			<body>
			<table border='1'>
			<tr>
			<td>IdCliente</td><td>Nombre</td><td>Tipo</td><td>Nro.Comprobante</td><td>Fecha</td><td align='right'>Debe</td><td align='right'>Haber</td><td align='right'>Saldo</td>
			</tr>
			<?php if(!$resultado) {
			}
			else {
				while($row=mssql_fetch_row($resultado)) {?>
				<tr>
				<td><?php echo $row[0];?></td><td><?php echo $row[1];?></td><td><?php echo $row[3];?></td><td><?php echo $row[4];?></td><td><?php echo $row[5];?></td><td align='right'><?php echo $row[6];?></td><td align='right'><?php echo $row[7];?></td><td align='right'><?php echo $row[8];?></td>
				</tr>
				<?php
				$cliente=$row[1];
				}
			} ?>
			</table>
			</body>
			</html>
			";
			$mail->Body=$body;
			// Envio Mail
			$exito = $mail->Send();
			if(!$exito) { 
			echo "Problemas enviando correo electrónico";
			echo "<br>".$mail->ErrorInfo;
			echo " "; 
			}
			else { 
			echo "Mensaje enviado correctamente";
			echo " ";
			}
		}
	}
catch (Exception $e)
{
	echo "Caught Exception ('{$e->getMessage()}')\n{$e}\n";
}
mssql_close($link);
?>
Aclaro que el mail se envia OK, el problema es que en el cuerpo del mail me llega solo el ancabezado de la tabla y no los datos...

Lo mas raro es que por pantalla se ve bien.. asi que el error debe estar en como armo el cuerpo para enviar por mail...