Receiving blank emails with PHP

Asked

Viewed 56 times

1

I created a form so that users could contact me through the site, however, when the form data is filled and sent, the email arrives blank and an email called postmaster. Despite my attempts to change variables and the like, the information that people fill, never appear, just the same blank email with a short sentence that I put to know from whom the email came.

Excerpt from the HTML where I start the form.

<section class="section section-icons grey lighten-4 center">
  <div class="col s12 m6">
    <div class="card-panel white -3">
      <i class="material-icons medium blue-text">mail</i>
      <h4>Preencha os campos abaixo para entrar em contato conosco</h4>
      <form class="contact-form" action="form.php" method="post">

        <input type="text" name="name" placeholder="Nome">

        <input type="email" name="mail" placeholder="E-mail">

        <input type="text" name="subject" placeholder="Assunto">

        <input textarea name="message" placeholder="Mensagem"></textarea>

        <button type="submit" name="submit" class="btn-large blue darken-3">Enviar</button>
      </form>
    </div>
  </div>
  <div class="row">
    <div class="col s12 center">
      <a href="#top" class="btn btn-small blue darken-3">
        <i class="material-icons left">arrow_upward</i> Retornar ao topo
      </a>
    </div>
  </div>
  </div>
</section>

PHP I’ve been trying to use:

<?php

if(isset($_POST['submit'])){
	$name = $_POST['name'];
	$mailFrom = $_POST['mail'];
	$subject = $_POST['subject'];
	$message = $_POST['message'];
	
	$mailTo = "[email protected]";
	$headers = "From: ".$mailFrom;
	$txt = "Foi recebida uma nova mensagem de:"$name.".\n\n".$message;
	
	mail($mailTo, $subject, $txt, $headers);
	header("Location: index.html?emailenviado");
}

?>

1 answer

1

hello, try something like this:

<form class="contact-form" action="form.php" method="post">
        <input type="text" name="name" placeholder="Nome">
        <input type="email" name="mail" placeholder="E-mail">
        <input type="text" name="subject" placeholder="Assunto">
        <input textarea name="message" placeholder="Mensagem"></textarea>
        <button type="submit" name="submit" class="btn-large blue darken-3">Enviar</button>
</form>

Here is the form.php

    <?php
  //1 – Definimos Para quem vai ser enviado o email
  $para = "[email protected]";

  //2 - resgatar o nome digitado no formulário e  grava na variavel $nome
  $name = $_POST['name'];

  // 3 - resgatar o assunto digitado no formulário e  grava na variavel //$assunto
  $assunto = $_POST['assunto'];

  $mail = $_POST['mail'];

  $telefone = $_POST['telefone'];

  $escola = $_POST['escola'];

  $msg = $POST['contato'];


   //4 – Agora definimos a  mensagem que vai ser enviado no e-mail
  $mensagem = "<strong>Nome:  </strong>".$name;

  $mensagem .= "<br>  <strong>Email: </strong>".$_POST['mail'];

  $mensagem .= "<br>  <strong>assunto: </strong>".$_POST['assunto'];

  $mensagem .= "<br>  <strong>Mensagem: </strong>".$_POST['message'];

  $mensagem .= "<br> <strong>Promoção/interesse: Educação infantil</strong>".$_POST['msg'];



//5 – agora inserimos as codificações corretas e  tudo mais.
  $headers =  "Content-Type:text/html; charset=UTF-8\n";

  $headers .= "From:  seudominio.com.br<[email protected]>\n"; //Vai ser //mostrado que  o email partiu deste email e seguido do nome

  $headers .= "X-Sender:  <[email protected]>\n"; //email do servidor //que enviou

  $headers .= "X-Mailer: PHP  v".phpversion()."\n";

  $headers .= "X-IP:  ".$_SERVER['REMOTE_ADDR']."\n";

  $headers .= "Return-Path:  <[email protected]>\n"; //caso a msg //seja respondida vai para  este email.

  $headers .= "MIME-Version: 1.0\n";

mail($para, $assunto, $mensagem, $headers);  //função que faz o envio do email.


?>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.