Foros Programación Servidor
Envío de email HTML con PHP
7 7 Respuestas Martes 20 de julio, 2010
Hola,
estoy haciendo el envio de un form con PHP que llegará con estilo HTML. El problema es que aunque el enviar.php recibe las variables del formulario.php, en el html no se muestran.
Entiendo que el problema esta en la sintaxis de las "consultas" (<?php echo $dia ?>) pero no se cuál es la forma correcta de escribirlo. Dejo el código.
Gracias por adelantado :)
estoy haciendo el envio de un form con PHP que llegará con estilo HTML. El problema es que aunque el enviar.php recibe las variables del formulario.php, en el html no se muestran.
Entiendo que el problema esta en la sintaxis de las "consultas" (<?php echo $dia ?>) pero no se cuál es la forma correcta de escribirlo. Dejo el código.
Gracias por adelantado :)
<?
$mailenviador =$_POST['email'];
$dia =$_POST['dia'];
$mes =$_POST['mes'];
$hora=$_POST['hora'];
$personas =$_POST['personas'];
$nombreapellidos =$_POST['nombreapellidos'];
$telefono =$_POST['telefono'];
$cuerpo = '
<html>
<head>
<title>Reserva de mesa</title>
</head>
<body>
Día: <?php echo $dia ?> de <?php echo $mes ?><br />
Hora: <?php echo $hora ?><br />
Comensales: <?php echo $personas ?><br />
Nombre: <?php echo $nombreapellidos ?><br />
Teléfono: <?php echo $hora ?><br />
Email: <?php echo $hora ?><br />
</body>
</html>
';
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
mail("x@x.com, $mailenviador","Reserva desde X",$cuerpo,$headers);
header("Location: http://www.x.com/reservas.php");
?>
-
albertoarandatoro
Registrado desde 25/06/09 / Número de posts: 99
Hola Xavib gracias por tu respuesta,
si elimino el <?php echo y el ?> en el email se me muestra el resto, es decir el $hora.
Lo extraño es que los datos los recibe, porque si paso del html y elimino el $cuerpo, y muestro las variables que recibe
"$text = "Hora".$_POST['hora']." \n";
se visualizan correctamente...
-
andrewman
Registrado desde 15/03/09 / Número de posts: 84
Prueba con:
<?php
$mailTo = "x@x.com";
$mailenviador =$_POST['email'];
$dia =$_POST['dia'];
$mes =$_POST['mes'];
$hora=$_POST['hora'];
$personas =$_POST['personas'];
$nombreapellidos =$_POST['nombreapellidos'];
$telefono =$_POST['telefono'];
$cuerpo = "<html>\n<head>\n<title>Reserva de mesa</title>\n</head>\n<body>\n";
$cuerpo .= "Día: ".$dia." de ".$mes."<br />";
$cuerpo .= "Hora: ".$hora."<br />";
$cuerpo .= "Comensales: ".$personas."<br />";
$cuerpo .= "Nombre: ".$nombreapellidos."<br />";
$cuerpo .= "Teléfono: ".$telefono."<br />";
$cuerpo .= "Email: ".$mailenviador;
$cuerpo .= "\n</body>\n</html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail($mailTo,'Reserva desde X',$cuerpo,$headers);
header("Location: http://www.x.com/reservas.php");
?>
Si vas a mezclar variables con cadenas de texto tenemos que usar comillas dobles, si sólo son cadenas de texto no afecta. Bueno supongo que debiese funcionar. -
albertoarandatoro
Registrado desde 25/06/09 / Número de posts: 99
Hola Andrewman,
en efecto el problema era de las comillas dobles y simples! Ya esta solucionado y funciona perfecto, dejo el código del resultado,
gracias!
<?php
$mailTo =$_POST['email'];
$dia =$_POST['dia'];
$mes =$_POST['mes'];
$hora=$_POST['hora'];
$personas =$_POST['personas'];
$nombreapellidos =$_POST['nombreapellidos'];
$telefono =$_POST['telefono'];
$cuerpo = "<html>\n<head>\n<title>Reserva de mesa</title>\n</head>\n<body>\n";
$cuerpo .="<p style='color:black; font-family:Arial, Helvetica, sans-serif; font-size:16px;'>Gracias por hacer su reserva en X<br />
X se pondrá en contacto con usted en menos de 48h para confirmar su reserva.</p><br />
<p style='color:#F30; font-family:Arial, Helvetica, sans-serif; font-size:16px;'>Los datos de su reserva son:</p>";
$cuerpo .= "Día: ".$dia." de ".$mes."<br />";
$cuerpo .= "Hora: ".$hora."<br />";
$cuerpo .= "Comensales: ".$personas."<br />";
$cuerpo .= "Nombre: ".$nombreapellidos."<br />";
$cuerpo .= "Teléfono: ".$telefono."<br />";
$cuerpo .= "Email: ".$mailTo."<br /><br />";
$cuerpo .= "<p style='color:#F30; font-family:Arial, Helvetica, font-weight:bold; sans-serif; font-size:11px;'>_______________________________________<br />
<br />
<a href='http://www.X.com' style='color:#F30; font-weight:bold; font-family:Arial, Helvetica, sans-serif; font-size:11px; '>www.X.com<br />
info@X.com</a><br />
</p>
<p style='color:black; font-family:Arial, Helvetica, sans-serif; font-weight:bold; font-size:11px;'>93 114 31 55<br />
Calle Ciudad (BCN)<br />
<span style='color:#F30; font-family:Arial, Helvetica, font-weight:bold; sans-serif; font-size:11px;'>_______________________________________</span></p>";
$cuerpo .= "\n</body>\n</html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Cc: alberto@revistapuntiapart.com\r\n";
mail($mailTo,'Reserva de mesaX',$cuerpo,$headers);
header("Location: http://www.X.com/reservas.php");
?> -
markshock
Registrado desde 21/03/05 / Número de posts: 780
Recomiendo usar PHPMailer para el envío, te da muchas facilidades y te resuelve muchos problemas de codificación de carácteres.
Fácil de usar y muy practico: http://phpmailer.worxware.com/index.phpDesarrollo web, servicios integrales en internet
Work: http://www.estadoactivo.com
Yo: http://www.marctorres.es
Blog: http://www.marc-torres.com -
tavo...
Registrado desde 06/11/09 / Número de posts: 67
tambien esta este programa es de facil uso, a mi me ha servido bastante
http://www.maxprog.com/site/software/internet-marketing/mass-bulk-emailer_sheet_es.php
Áreas Domestika
- Diseño (gráfico, web, industrial, producto)
- Programación (cliente, servidor, accesibilidad)
- Ilustración (autores, inspiración, técnicas)
- Fotografía (técnica, equipo, autores)
- Motion Graphics (showreels, software, estudios)
- Publicidad (campañas, anuncios, ideas)
- Informática (software, hardware, trucos)
- 3D (técnicas, iluminación, modelado)
- Experiencia de Usuario (usabilidad, AI, HCI)
- Cine, vídeo y televisión (críticas, producción)
- Música y Audio (sonidos, loops, discos)
- Espacios (arquitectura, interiorismo)