PHP does not send email and no error appears

Asked

Viewed 263 times

0

I am using PHP Mailer to send an email but it is not sending and no error appears.

FORM:

 <form method="post" action="enviar_mensagem.php">
       <ul style="margin-left: 15px;">
        <li><input type="text" id="Nome" name="nome" placeholder="Nome" required >

           <p class="poss"> <input style="margin-left: 30px;" type="radio" name="gender" value="male">MASCULINO<input type="radio" name="gender" value="male">FEMININO</p><br>
        </li>
        <li><input type="text" id="Rg" name="rg" placeholder="Rg" required ><input type="text" id="Cpf" name="cpf" placeholder="Cpf" required ><input type="text" id="Email" name="email" placeholder="Email" required ></li>
        <li><input type="text" id="End" name="end" placeholder="Endereço" required ></li>
           <li><p class="pcon">Camisa Ciclista</p></li>
        <li><input type="text" id="Data" name="data" placeholder="Data de Nascimento" required ><input type="text" id="Peso" name="peso" placeholder="Peso" required ><input type="text" id="Altura" name="altura" placeholder="Altura" required > <input style="margin-right:5px;" type="radio" name="camisa" value="p">P<input style="margin-left:20px;"  type="radio" name="camisa" value="m"> M<input style="margin-left:20px;"  type="radio" name="camisa" value="g"> G</li>
        <li><p class="pcon" style=" padding-left: 0px;">Telefones para Contato                                                                                                                     Seguro Saúde?</p></li>
        <li><input type="text" id="Data" name="resi" placeholder="Residencial" required ><input type="text" id="Data" name="celular" placeholder="Celular" required > <input style="margin-right:5px;" type="radio" name="seguro" value="sim">SIM<input style="margin-left:20px;"  type="radio" name="seguro" value="nao"> NÃO<input type="text" id="Data" name="plano" placeholder="Plano de Caso" required style="margin-left:8px;"></li>
           <li><p class="pcon" style=" padding-left: 0px;top: 12px;">Contato de Emergência                                                                                                                            Tipo Sanguineo                                    Fator RH</p></li>
        <li><input type="text" id="Data" name="nomee" placeholder="Nome" required ><input type="text" id="Data" name="telefonee" placeholder="Telefone" required >
            <input style="margin-right:5px;" type="radio" name="tipo" value="a">A<input style="margin-left:20px;"  type="radio" name="tipo" value="b"> B<input style="margin-left:20px;"  type="radio" name="tipo" value="AB"> AB<input style="margin-left:20px;"  type="radio" name="tipo" value="O">O
            <input style="margin-right:5px;margin-left:50px;" type="radio" name="fator" value="positivo">Positivo<input style="margin-left:20px;"  type="radio" name="fator" value="negativo">Negativo
           </li>
         <input type="submit" id="compraring" value=" Salvar Inscrição" style="height: 70px;padding-top: 3px;">
       </ul>
       </form>

Enviar_mensagem.php

      <?php
            session_start();
            ob_start();

            $nome = $_POST['nome'];
            $gender = $_POST['gender'];
            $rg = $_POST['rg'];
            $cpf = $_POST['cpf'];
            $email = $_POST['email'];
            $end = $_POST['end'];
            $data = $_POST['data'];
            $peso = $_POST['peso'];
            $altura = $_POST['altura'];
            $camisa = $_POST['camisa'];
            $resi = $_POST['resi'];
            $celular = $_POST['celular'];
            $seguro = $_POST['seguro'];
            $plano = $_POST['plano'];
            $nomee = $_POST['nomee'];
            $telefonee = $_POST['telefonee'];
            $tipo = $_POST['tipo'];
            $fator = $_POST['fator'];
            $mensagem = $_POST['mensagem'];

            if($_POST['nome'] != '' && $_POST['mensagem'] != ''){
                require("phpmailer/class.phpmailer.php");

                // Inicia a classe PHPMailer

                $mail = new PHPMailer();

                // Define os dados do servidor e tipo de conexão

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->Host = "mail.brasilbiketour.com";

                $mail->Port = 26;

                $mail->SMTPAuth = true;

                $mail->SMTPSecure = 'tls';

                $mail->IsSMTP(); // Define que a mensagem será SMTP



                $mail->Username = '[email protected]'; // Username de acesso ao e-mail

                $mail->Password = 'brasil123'; // Senha do servidor SMTP

                // Define o remetente

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->From = "[email protected]"; // Seu e-mail
                $mail->FromName = "Contato Brasil Bike Tour"; // Seu nome

                // Define os destinatário(s)

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                $mail->AddAddress('[email protected]');
                $mail->AddReplyTo($email);

                // Define os dados técnicos da Mensagem

                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                $mail->IsHTML(true); // Define que o e-mail será enviado como HTML
                $mail->CharSet = 'utf-8'; // Charset da mensagem

                // DEFINIR OPÇÕES DE EVENTO:


                 // Define a mensagem (Texto e Assunto)
                // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                $mail->Subject  = "Mensagem de Contato Brasil Bike Tour"; // Assunto da mensagem
                $mail->Body = "<font style=\"font-size:16px\"><b>Nome:</b> $nome; <br /><b>E-mail:</b> $email; <br /><b>Gênero:</b>$gender; <br /><br /><b>RG:</b>$rg; <br /><br /><b>CPF:</b>$cpf; <br /><br /><b>Endereço:</b>$end; <br /><br /><b>Data:</b>$data; <br /><br /><b>Peso:</b>$peso; <br /><br /><b>Altura:</b>$altura; <br /><br /><b>Tamanho da Camisa:</b>$camisa; <br /><br /><b>Telefone Residencial:</b>$resi; <br /><br /><b>Celular:</b>$celular; <br /><br /><b>Seguro Saude:</b>$seguro; <br /><br /><b>Plano de Caso:</b>$plano; <br /><br /><b>Contato para Emergência:</b>$nomee; <br /><br /><b>Telefone de Emergência:</b>$telefonee; <br /><br /><b>Tipo Sanguineo:</b>$tipo; <br /><br /><b>Fator RH:</b>$fator; <br /><br /><b>Mensagem:</b><br />$mensagem</font>";

                $mail->AltBody = "Nome: $nome;\r\n E-mail: $email;\r\n\r\n Gênero: $gender;\r\n\r\n RG: $rg;\r\n\r\n CPF: $cpf;\r\n\r\n Endereço: $end;\r\n\r\n Data: $data;\r\n\r\n Peso: $peso;\r\n\r\n Altura: $altura;\r\n\r\n  Tamanho da Camisa: $camisa;\r\n\r\n Residencia: $resi;\r\n\r\n Celular: $celular;\r\n\r\n Seguro Saude: $seguro;\r\n\r\n Plano de Caso: $plano;\r\n\r\n Nome Emergencia: $nomee;\r\n\r\n  Telefone de Emergencia: $telefonee;\r\n\r\n Tipo sanguineo: $tipo;\r\n\r\n Fator RH: $fator;\r\n\r\n  Mensagem:\r\n $mensagem;";

       // Envia o e-mail
       $enviado = $mail->Send();
        $mail->ClearAllRecipients();
        $mail->ClearAttachments();
   }
?>

1 answer

2


Your code enviar_mensagem.php has a if verifying whether the field nomeand the countryside mensagem was sent.

That one if does not have a else, soon if one of these indexes is missing in the array $_POST, your screen will only be blank.

See, your code is as follows:

//...
if($_POST['nome'] != '' && $_POST['mensagem'] != '') {
    //...
}

Missing one else to inform that there is some missing value. Let’s change it:

//...
if($_POST['nome'] != '' && $_POST['mensagem'] != '') {
    //...
} else {
    echo "não enviou todos os parâmetros";
}

Now let’s look at your form. It is necessary to exist the 2 fields, nome and mensagem. The field nome exists:

<input type="text" id="Nome" name="nome" placeholder="Nome" required >

But where is the field mensagem?

There are two solutions, or I created the message field:

<input type="text" id="Mensagem" name="Mensagem" placeholder="Mensagem" required >

Or change your own if to consider only the nome:

//...
if($_POST['nome'] != '') {
    //...

Now you need to ensure that your email is sent successfully and if there is an error, print it on screen. Inside the if, at the end comment the following line:

//$enviado = $mail->Send();

Add the following:

//...
$mail->SMTPDebug = 1;
if(!$mail->Send()) { 
   echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
     echo "Enviado com sucesso!";
    $mail->ClearAllRecipients();
    $mail->ClearAttachments();
}

Browser other questions tagged

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