Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Formulario PHP no envia al correo

Estas en el tema de Formulario PHP no envia al correo en el foro de PHP en Foros del Web. Hola, resulta que hecho un formulario en HTML y quiero que los datos se me envíen a mi correo. Mis conocimientos sobre PHP son muy ...
  #1 (permalink)  
Antiguo 27/05/2013, 03:45
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Formulario PHP no envia al correo

Hola, resulta que hecho un formulario en HTML y quiero que los datos se me envíen a mi correo. Mis conocimientos sobre PHP son muy pero que muy básicas y e estado mirando por Internet como hacerlo.
El problema esta en que no me da ningun error de syntaxis pero el correo no me llega.

Código PHP
Cita:
<?php
$para = "[email protected]";
$asunto = "primerformulario";

$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$poblacion = $_POST['poblacion'];
$mensaje = $_POST['mensaje'];

$cuerpo = "
$nombre <br>
$empresa <br>
$telefono <br>
$email <br>
$poblacion <br>
$mensaje <br>
";

$cabecera = "MIME-Version:1.0:\r\n";
$cabecera .= "Content-Type;text/html \r\n charset=iso-8859-1; \r\n";
$cabecera .= "From: $email \r\n";
$cabecera .= "To: $para; \r\n Subject:$asunto \r\n";

if(mail($para,$asunto,$mensaje,$cuerpo))
echo "Enviado Correctamente";
else
echo "Fallo en envio";
?>
Formulario HTML
Cita:
<form method="post" action="formulario.php" name="form">

Persona de contacto<br>
<input name="nombre" type="text" size="50" class="anchoform">

Empresa<br>
<input name="empresa" type="text" size="50" class="anchoform">

Tel&eacute;fono de contacto<br>
<input name="telefono" type="text" size="50" class="anchoform">

E-mail de contacto<br>
<input name="email" type="text" size="50" class="anchoform">

Poblaci&oacute;n<br>
<input name="poblacion" type="text" size="50" class="anchoform">

Mensaje<br>
<textarea name="mensaje" rows="10" cols="37"></textarea><br>
<input type="submit" value="Enviar informaci&oacute;n">
Alguien puede decirme donde esta el error por favor?
Muchas gracias por la ayuda, pero es que acabo de empezar con el html y el css y el php aun me queda un poco grande.
  #2 (permalink)  
Antiguo 27/05/2013, 04:38
 
Fecha de Ingreso: noviembre-2012
Mensajes: 84
Antigüedad: 11 años, 4 meses
Puntos: 5
Respuesta: Formulario PHP no envia al correo

Hola!!

Estas trabajando en Local ???

Si es así debes configurar algún programilla para simular correos en Local, por ejemplo Mercury de XAMPP


Un saludo!!
  #3 (permalink)  
Antiguo 27/05/2013, 12:19
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

Muchas gracias por la respuesta, si estoy trabajando en local. Sería posible utilizar hotmail o gmail para hacer esto?
  #4 (permalink)  
Antiguo 28/05/2013, 01:16
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

Debido a que no consigo hacerlo con la función mail quería preguntar si hay otra manera para recibir la forma de los formularios.
  #5 (permalink)  
Antiguo 28/05/2013, 02:44
 
Fecha de Ingreso: agosto-2011
Ubicación: por ahi
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

Hola rubenbb1994, deberias probar las librerias de PHPMailer, busca en google información y encontraras muchos ejemplos de como configurar tu servirdor local(ya sea Wamp, Xampp,erc.) para el envio de correos.

Saludos!
  #6 (permalink)  
Antiguo 03/06/2013, 02:49
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

Muchas gracias después de probar mucho e conseguido que me funcione con la librería phpmailer.
Ahora me llega todo correcto, pero tengo un problema, me llega el mismo correo dos veces.

Cita:
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();

$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$poblacion = $_POST['poblacion'];
$mensaje = $_POST['mensaje'];

$cuerpo = "
$nombre \r\n
$empresa \r\n
$telefono \r\n
$email \r\n
$poblacion \r\n
$mensaje \r\n
";


$mail->From = $email; // Mail de origen
$mail->FromName = $nombre; // Nombre del que envia
$mail->AddAddress("[email protected]"); // Mail destino, podemos agregar muchas direcciones

$mail->Subject = "Prueba";
$mail->Body = $cuerpo;

$mail->Mailer = "smtp";
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "xxxxxx"; // SMTP password
$mail->Send();

if ($mail->Send())
echo "Enviado";
else
echo "Error en el envio de mail";

?>
Muchas gracias por la ayuda.
  #7 (permalink)  
Antiguo 03/06/2013, 03:03
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

por fin lo e conseguido ya se cual era el problema. El problema estaba en la linea:
if ($mail->Send())

ahora el problema esta en que si la quito no se como funciona, alguien podría decirme como lo soluciono:

Cita:
if (!$mail->Send())
echo "Enviado";
else
echo "Error en el envio de mail";

PD: por favor me precipite al darle a tema solucionado si podeis quitarle la etiqueta.

Última edición por rubenbb1994; 03/06/2013 a las 03:10
  #8 (permalink)  
Antiguo 03/06/2013, 03:55
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Formulario PHP no envia al correo

Fíjate que tienes:
$mail->Send();
if ($mail->Send())

Quita la primera y deja el del IF.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #9 (permalink)  
Antiguo 04/06/2013, 00:05
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Formulario PHP no envia al correo

Ostras no lo había pensado en dejar solo la del if, muchas gracias, como se nota que no se nada de programación :),
Entonces ya doy el tema por cerrado.

Etiquetas: correo, envia, formulario, html
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 13:31.