Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No llega el e-mail los envíos desde el formulario de contacto

Estas en el tema de No llega el e-mail los envíos desde el formulario de contacto en el foro de PHP en Foros del Web. Buenas, Llevo ya muchos intentos, pero no hay manera de que me llegue al e-mail la información incluida en el formulario de contacto. Sin embargo, ...
  #1 (permalink)  
Antiguo 12/04/2015, 11:25
 
Fecha de Ingreso: abril-2015
Ubicación: Bilbao
Mensajes: 16
Antigüedad: 9 años
Puntos: 1
Exclamación No llega el e-mail los envíos desde el formulario de contacto

Buenas,

Llevo ya muchos intentos, pero no hay manera de que me llegue al e-mail la información incluida en el formulario de contacto. Sin embargo, cuando envío no me sale ningún error.

Estoy utilizando la plantilla Freelancer de Star Bootstrap. He leído en su web que podría ser por el e-mail utilizado, sin embargo he probado con varios y sigue sin funcionar. También he comprobado que el e-mail no esté en la bandeja spam :P

Os dejo el código incluido en el contact_me.php a ver si veis algo raro en él:

Código PHP:
<?php
// Check for empty fields
if(empty($_POST['name'])          ||
   empty(
$_POST['email'])         ||
   empty(
$_POST['phone'])         ||
   empty(
$_POST['message'])    ||
   !
filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo 
"No arguments Provided!";
    return 
false;
   }
    
$name $_POST['name'];
$email_address $_POST['email'];
$phone $_POST['phone'];
$message $_POST['message'];
    
// Create the email and send the message
$to '[email protected]'// Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to.
$email_subject "Formulario de contacto:  $name";
$email_body "Ha recibido un nuevo mensaje de su formulario de contacto.\n\n"."Aquí tienes los detalles:\n\nNombre: $name\n\nEmail: $email_address\n\nAsunto: $phone\n\nMensaje:\n$message";
$headers "From: [email protected]"// This is the email address the generated message will be from. We recommend using something like [email protected].
$headers .= "Reply-To: $email_address";    
mail($to,$email_subject,$email_body,$headers);
return 
true;            
?>
Os dejo también la web:
http://miniguini.com/

¡¡Muchas gracias!!

Saludos,
Naiara
  #2 (permalink)  
Antiguo 12/04/2015, 12:24
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años, 1 mes
Puntos: 74
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

prueba de ejecutar los ejemplos de esta página http://php.net/manual/en/function.mail.php
  #3 (permalink)  
Antiguo 13/04/2015, 01:30
 
Fecha de Ingreso: abril-2015
Ubicación: Bilbao
Mensajes: 16
Antigüedad: 9 años
Puntos: 1
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

Hola superweb360,

Lo he intentado con lo que me comentas, pero sigo sin conseguirlo... :(

¿Alguna otra idea?

Gracias

Saludos
  #4 (permalink)  
Antiguo 13/04/2015, 07:19
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

Prueba con algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(empty($_POST['name'])          ||
  4.    empty($_POST['email'])         ||
  5.    empty($_POST['phone'])         ||
  6.    empty($_POST['message'])    ||
  7.    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
  8.    {
  9.     echo "No arguments Provided!";
  10.     return false;
  11.    };
  12.  
  13. // Datos del email
  14.  
  15. $name = $_POST['name'];
  16. $email_address = $_POST['email'];
  17. $phone = $_POST['phone'];
  18. $message = $_POST['message'];
  19.  
  20. $nombre_origen    = "naiarafernandezruiz";  /* Por ejemplo*/
  21. $email_origen     = "[email protected]";
  22. $email_copia      = "[email protected]";
  23. $email_ocultos    = "[email protected]";
  24. $email_destino    = "".$email_address."";
  25.  
  26. $asunto = "Formulario de contacto:  $name";
  27.  
  28. $mensaje = '
  29. Ha recibido un nuevo mensaje de su formulario de contacto. <br>
  30. <br>
  31. Aquí tienes los detalles: <br>
  32. <br>
  33. Nombre: $name <br>
  34. <br>
  35. Email: $email_address<br>
  36. <br>
  37. Asunto: $phone<br>
  38. <br>
  39. Mensaje:<br>
  40. $message
  41. ';
  42.  
  43. $formato = "html";
  44.  
  45. //*****************************************************************//
  46. $headers  = "From: $nombre_origen <$email_origen> \r\n";
  47. $headers .= "X-Priority: 3 \r\n";
  48. $headers .= "MIME-Version: 1.0 \r\n";
  49. $headers .= "Content-Transfer-Encoding: 7bit \r\n";
  50. //*****************************************************************//
  51.  
  52. if($formato == "html")
  53.  { $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
  54.    else
  55.     { $headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }
  56.  
  57. if (@mail($email_destino, $asunto, $mensaje, $headers))  
  58. { };
  59.  
  60. ?>

Suerte.
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 13/04/2015, 08:52
 
Fecha de Ingreso: abril-2015
Ubicación: Bilbao
Mensajes: 16
Antigüedad: 9 años
Puntos: 1
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

Nada.. sigue sin funcionar. De todas formas NueveReinas, en el código que me has adjuntado ¿no faltaría incluir el $to? Sino no se sabe dónde se tiene que enviar el formulario, no?
  #6 (permalink)  
Antiguo 13/04/2015, 09:56
 
Fecha de Ingreso: abril-2015
Ubicación: Bilbao
Mensajes: 16
Antigüedad: 9 años
Puntos: 1
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

Lo he conseguido, el código quedaría así:

Código PHP:
Ver original
  1. <?php
  2. $name = $_POST['name'];
  3. $email_address = $_POST['email'];
  4. $phone = $_POST['phone'];
  5. $message = utf8_decode ( $_POST['message']);
  6.  
  7. // Create the email and send the message
  8. $to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to.
  9. $email_subject = "Formulario de contacto:  $name";
  10. $email_body = "Ha recibido un nuevo mensaje de su formulario de contacto.\n\n"."Aqui tienes los detalles:\n\nNombre: $name\n\nEmail: $email_address\n\nMensaje:\n$message";
  11. $headers = "From: [email protected]"; // This is the email address the generated message will be from. We recommend using something like [email protected].
  12. $headers .= "Reply-To: $email_address";
  13. mail($to,$email_subject,$email_body,$headers);
  14. ?>
  #7 (permalink)  
Antiguo 13/04/2015, 22:09
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: No llega el e-mail los envíos desde el formulario de contacto

Cita:
Iniciado por naiarafernandezruiz Ver Mensaje
Nada.. sigue sin funcionar. De todas formas NueveReinas, en el código que me has adjuntado ¿no faltaría incluir el $to? Sino no se sabe dónde se tiene que enviar el formulario, no?
El $to no es más que una variable con información del email.
La misma información se encuentra en mi código con la variable $email_destino, donde es igual a la variable $email_address que se recoge desde el formulario.

Por eso;
Código PHP:
Ver original
  1. $email_destino    = "".$email_address."";

Respecto al código de tu solución, no marcas los headers del tipo de contenido (HTML, ISO-8859-1) ni marcas bien el "From X <x>" como por ejemplo sí lo hace mi código:

Código PHP:
Ver original
  1. $headers  = "From: $nombre_origen <$email_origen> \r\n";

Eso quizá muestre información del SMPT de tu hosting si no está bien configurado, cosa que, por ejemplo, ocurre en Hostinger.

Saludos.
__________________
¿Te sirvió la respuesta? Deja un +1

Etiquetas: contacto, e-mail, formulario, llega
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 12:11.