Foros del Web » Programando para Internet » PHP »

Problemas para enviar mail php

Estas en el tema de Problemas para enviar mail php en el foro de PHP en Foros del Web. Tengo un archivo llamado plantilla-pedido-usuario-nuevo.php en este archivo lo que hago es recoger una serie de variables mediante "$_POST" también tengo un bucle "for" que ...
  #1 (permalink)  
Antiguo 10/08/2010, 11:03
 
Fecha de Ingreso: agosto-2010
Mensajes: 23
Antigüedad: 13 años, 8 meses
Puntos: 0
Problemas para enviar mail php

Tengo un archivo llamado plantilla-pedido-usuario-nuevo.php

en este archivo lo que hago es recoger una serie de variables mediante "$_POST"

también tengo un bucle "for" que recoge varios campos y crea un pequeño codigo "html" que luego inserto en el cuerpo del mensaje.

A continuación os pongo el código de la página y despues os explico el problema.

<?php


// múltiples recipientes
$para .= $_POST["amigo"]; '[email protected]';

// asunto
$asunto = 'Pedido Ho Soccer';

//Datos Carrito

include("lib_carrito.php");
$_SESSION["ocarrito"]->imprime_final();

// Datos
$Cliente= $_POST["cliente"];
$Direccion= $_POST["direccion"];
$Correo= $_POST["correo"];
$Provincia= $_POST["provincia"];
$Localidad= $_POST["localidad"];
$Telefono= $_POST["tel"];
$Cp= $_POST["cp"];

$Cantidad= $_POST["cantidad"];
$i=1;

ob_start();
for ($Productos=1; $Productos <= $Cantidad; $Productos++){

$Guante= $_POST["producto".$i.""];



$Cadena = "<table width=\"600\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"253\" height=\"30\" align=\"left\" class=\"Shop_apartados\">" . $Guante . "</td>
<td width=\"120\" align=\"left\" class=\"Productos_Carritos\">€</td>
<td width=\"227\" class=\"Precio\"></td>
</tr>
</table>";

$i++;
}


$Cont = $Cadena;

echo $Cont;
// mensaje
$mensaje = "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<title>Documento sin título</title>

<style type=\"text/css\">
<!--
.Productos_Carritos{
font-family: Verdana, Geneva, sans-serif;
font-size: 16px;
color: #FFFFFF;
}

.Shop_apartados{
font-family: Verdana, Geneva, sans-serif;
font-size: 11px;
font-weight: bold;
color: #f6b412;
}

-->
</style>

</head>

<body leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">
<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td height=\"646\" align=\"center\" valign=\"top\" bgcolor=\"#000000\"><table width=\"200\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td height=\"50\">&nbsp;</td>
</tr>
</table>
<table width=\"730\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td class=\"Productos_Carritos\">HOJA DE PEDIDO</td>
</tr>
</table>
<table width=\"200\" height=\"10\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td height=\"10\"></td>
</tr>
</table>
<table width=\"730\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td class=\"Shop_apartados\">DATOS PERSONALES</td>
</tr>
</table>
<table width=\"200\" height=\"10\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td height=\"10\"></td>
</tr>
</table>
<table width=\"730\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"365\" height=\"150\" valign=\"top\" class=\"Shop_apartados\"><table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Nombre</span></td>
<td width=\"250\">". $Cliente ." </td>
</tr>
</table>
<table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">E-mail</span></td>
<td width=\"250\">". $Correo ."</td>
</tr>
</table>
<table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Localidad</span></td>
<td width=\"250\">". $Poblacion ."</td>
</tr>
</table>
<table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Codigo Postal</span></td>
<td width=\"250\">". $Cp ."</td>
</tr>
</table></td>
<td width=\"365\" valign=\"top\" class=\"Shop_apartados\"><table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Direcci&oacute;n</span></td>
<td width=\"250\">". $Direccion ."</td>
</tr>
</table>
<table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Provincia</span></td>
<td width=\"250\">". $Provincia ."</td>
</tr>
</table>
<table width=\"350\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" height=\"30\"><span class=\"Shop_apartados\">Tel&eacute;fono</span></td>
<td width=\"250\" align=\"left\">". $Telefono ."</td>
</tr>
</table></td>
</tr>
</table>
<table width=\"730\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td height=\"25\"><span class=\"Shop_apartados\">DATOS DE PEDIDO</span></td>
</tr>
</table>
". $Cadena ."
</td>
</tr>
</table>
</body>
</html>
";

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Cabeceras adicionales

$cabeceras .= 'From: '.$_POST["nombre"]; "\n";
$cabeceras .= ''.$_POST["email"]; "\n";


// Enviarlo
mail($para, $asunto, $mensaje, $cabeceras);
?><body link="#666666" alink="#666666">
<table width="450" height="300" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="2" align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle"><span class="Estilo1"><font color="#666666" size="2" face="Verdana">El
E-mail ha sido enviado con exito, gracias por su colaboraci&oacute;n.</font><br>
<br>
<br>
<img src="images/logo.gif" width="100" height="44"> </span></td>
<td rowspan="2" align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle"><span class="Estilo1"><a href="newsletter-febrero09.htm"><font size="2" face="Verdana">&lt;&lt;&lt;
volver al newsletter</font></a> </span></td>
</tr>
</table>



La variable "$mensaje" es la que contiene todo el cuerpo y todo me llega correcto, el problema es que cuando recibo el mail, de la parte del bucle sólo me llega la última entrada del bucle. Por ejemplo si el bucle se repite tres veces solo envía por email el último resultado.

He intentado meter el bucle dentro de la variable "$mensaje" pero no me funciona o no lo hago bien.

¿Alguien me puede ayudar a enviar todo el contenido del bucle?.

Muchas Gracias
  #2 (permalink)  
Antiguo 10/08/2010, 11:18
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Respuesta: Problemas para enviar mail php

Si te fijas... dentro del for donde llenas $Cadena esa variable no se concatena... o sea...

En el primer ciclo $Cadena se cargo con x informacion...
En el segundo ciclo $Cadena se carga con y informacion y borra x
Y asi sucesivamente...

Para que eso no suceda debes anteponer un punto en el signo igual (=).

O sea:
Código PHP:
$Cadena .= 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 10/08/2010, 13:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 23
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problemas para enviar mail php

Muchísimas gracias por tu ayuda.

Sobre todo por la rapidez de la respuesta, funciona perfectamente. Con este pequeño fleco ya lo tengo acabado, gracias de nuevo.

Etiquetas: enviar, mail
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 01:35.