PHP - No llega correo PHP

 
Vista:

No llega correo PHP

Publicado por Davidgg (1 intervención) el 19/08/2018 15:43:16
Hola buenas.

Estoy empezando a hacer formularios y se me ocurrió la idea de que llegasen los formularios al correo.

Todo va bien, cuando le doy a enviar ejecuta el código bien pero el correo nunca llega a su destinatario (yo).

Os dejo el código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="enviar.php" method="POST">
        Tu nombre: <input type="text" name="nombre"><br/>
        Tu correo: <input type="text" name="correo"><br/>
        Asunto: <input type="text" name="asunto"><br/>
        Mensaje: <textarea name="mensaje"></textarea><p/>
        <input type="submit" value="Enviar"><br/>
        </form>
</body>
</html>
 
<?php
//Recibimos los campos del formulario
$nombre=$_POST[nombre];
$correo=$_POST[correo];
$asunto=$_POST[asunto];
$mensaje=$_POST[mensaje];
//Acomodamos todo para darle orden al cuerpo del mensaje
$texto_mensaje="El usuario ".$nombre." dijo: \n".$mensaje." \n
Puedes contactarlo a su correo: ".$correo;
mail("davidguisado2000@gmail.com",$asunto,$texto_mensaje);
sleep(3);
echo "Su mensaje se ha enviado! Nos pondremos en contacto contigo.";
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 588
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

No llega correo PHP

Publicado por santi (204 intervenciones) el 19/08/2018 23:06:50
Hola,

antes de nada deberías comprobar si existe tal correo con un if($_POST).

A parte de esto tienes un fallo en el recibo y es que deberías encerrar cada campo con "", por ejemplo:

1
2
$nombre=$_POST[nombre];//Encierra el post con "..."
$nombre=$_POST["nombre"];//Y así todos

Si sigue sin funcionar, puede ser por distintos motivos:

¿lo estás haciendo desde localhost? Lo digo porque no vas a poder recibir correos a no ser que configures tu php.ini o utilices un programa externo para poder recibir correos "reales"...

Si es el caso, te aconsejo que te descargues https://toolheap.com/test-mail-server-tool/. Con este programa vas a poder recibir correos de prueba antes de subir tus proyectos a internet y funciona correctamente sin contar algunos fallos como que a veces no muestra imágenes y la estructura del correo no es la deseada pero para hacer pruebas va perfecto ;)

Si no es el caso, lo cual significa que está en internet, prueba de utilizar PHPMailer o algún script de PHP para envío de correos con SMTP, porque a veces, el servidor falla al enviar correos con la función mail()...

A parte de esto, cambia el campo del correo a
1
type:email
, de esta forma verificará si es un email y no como un campo de texto normal...

Prueba a ver y nos comentas ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar