PHP form is not sending the email

0

I have the following HTML code:

<form action="send-mail.php" method="post">
    <div class="templatemo_form">
        <input name="name" type="text" class="form-control" id="name" placeholder="Seu Nome" maxlength="40" required/>
    </div>
    <div class="templatemo_form">
        <input name="email" type="email" class="form-control" id="email" placeholder="Seu Email" maxlength="40" required/>
    </div>
    <div class="templatemo_form">
        <input name="assunto" type="text" class="form-control" id="assunto" placeholder="Assunto" maxlength="60" required/>
    </div>
    <div class="templatemo_form">
        <textarea name="mensagem" class="form-control" id="mensagem" placeholder="Mensagem"></textarea>
    </div>
    <div class="templatemo_form">
        <input name="enviar" type="submit" class="btn btn-primary" value="Enviar" />
    </div>
</form>

And the sending PHP file is:

<?php
    $name     =   $_POST['name']; //pega os dados que foi digitado no ID name.
    $email    =   $_POST['email']; //pega os dados que foi digitado no ID email.
    $assunto  =   $_POST['assunto']; //pega os dados que foi digitado no ID assunto.
    $mensagem  =   $_POST['mensagem']; //pega os dados que foi digitado no ID mensagem.

    $headers  = "From: $email\r\n";
    $headers .= "Reply-To: $email\r\n";

/* abaixo contém os dados que serão enviados para o email cadastrado para receber o formulário */

    $corpo = "Formulario Enviado\n";
    $corpo .= "Nome: " . $name . "\n";
    $corpo .= "E-mail: " . $email . "\n";
    $corpo .= "Assunto: " . $assunto . "\n";
    $corpo .= "Mensagem: " . $mensagem . "\n";


    $email_to = '[email protected]'; //não esqueça de substituir este email pelo seu.

    $status = mail($email_to, $email, $corpo, $headers); //enviando o email.

    if($status) {       
       echo "<script> alert('Obrigado pela mensagem. Em breve entraremos em contato.'); </script>"; //mensagem de form enviado com sucesso.     
    }   else {      
       echo "<script alert('Falha ao enviar a mensagem.'); </script>"; //mensagem de erro no envio.     
    }   
    echo "<script> window.location.href = 'index.html'; </script>"; //mudar o  site para redirecionar após o envio do form.
?>

It does everything right but the email does not arrive. Can anyone tell me what might be wrong?

    
asked by anonymous 22.09.2016 / 18:36

1 answer

0

Depending on the server you are in, it does not only send through the server it needs a class that configures smtp. In this case, it happens that I use PHPMAILER to work. Remember that it is very important to know that the configuration of sending the $ mail-> Username and $ mail-> Password = 'password' must be an email of the same server where the form is hosted.

See where you have these settings:

$ mail-> IsSMTP (); // Sets the message to be SMTP $ mail-> Host="smtp.domain.net"; // SMTP server address $ mail-> SMTPAuth = true; // Use SMTP authentication? (optional) $ mail- > Username = '[email protected]'; // SMTP server user $ mail- > Password = 'password'; // SMTP server password

An example of servers that work like this is the localweb.

see if this link will help you, it explains very well how to use phpMailer

    
22.09.2016 / 20:49