Problem sending form to e-mail

Asked

Viewed 58 times

-1

I have a form that sends the typed data to my e-mail. But I cannot send the copy to the informed user in the email field of the form. What am I doing wrong?

php contact.

<form name="contato" method="POST" action="enviar-contato.php">
            <input type="text" name="nome" autofocus required placeholder="Digite seu nome">
            <input type="tel" name="telefone" required placeholder="Digite seu telefone" id="ddd_tel" class="ddd_tel">
            <input type="email" name="email" required placeholder="Digite seu e-mail"><br>
            <select name="assuntomsg" required id="assuntomsg">
              <option selected="selected">Selecione o Assunto</option>
              <option value="Dúvidas">Dúvidas</option>
              <option value="Reclamações">Reclamações</option>
              <option value="Sugestões">Sugestões</option>
            </select>
            <textarea name="mensagem" cols="40" rows="8" required></textarea>
            <button type="reset"><b>Apagar</b></button>
            <button type="submit"><b>Enviar</b></button>
        </form>

send-contact.php

<?php

//Variáveis

$nome = $_POST['nome'];
$telefone = $_POST['telefone'];
$email = $_POST['email'];
$assuntomsg = $_POST['assuntomsg'];
$mensagem = $_POST['mensagem'];
$data_envio = date('d/m/Y');
$hora_envio = date('H:i:s');

// Campo E-mail
$arquivo = "
<style type='text/css'>
    * {margin: 0; padding: 0; font-size: 100%; border: none; outline: none; font-weight: 300; box-sizing: border-box; font-family: 'Lato', sans-serif;}
body {
margin:0px;
font-size:12px;
color: #858585;
}
a{
color: #fff;
text-decoration: none;
}
a:hover {
color: #fff;
text-decoration: none;
}
.titulo {
width: 98%;
padding: 2%;
}
.titulo h2 {
background-color: #88e004;
color: #fff;
text-transform: uppercase;
  font-size: 20pt;
  font-weight: bold;
width: 100%;
padding: 2%;
margin-bottom: 2%;
  text-align: center;
}
p {
font-size: 16pt;
        margin: 0 0 1% 2%;
}
    img {
        margin: 0 0 2% 2%;
    }
.rodape {
width: 100%;
background-color: #88e004;
  padding: 2%;
  color: #ffffff;
font-size: 10pt;
}
h5 {
font-size: 24pt;
color: #88e004;
text-transform: uppercase;
  font-weight: bold;
  margin: 4% 0 1% 2%;
  text-align: center;
}
h6 {
font-size: 14pt;
color: #88e004;
text-transform: uppercase;
  font-weight: bold;
  margin-bottom: 2%;
  margin-left: 2%;
  text-align: center;
}
h7 {
font-size: 10pt;
color: #858585;
}
h8 {
font-size: 10pt;
color: #ffffff;
}
</style>
<html>
<div class='titulo'>
<h2>Que legal, $nome. Olha abaixo a confirmação do seu contato.</h2>
    <p><b>Telefone:</b> $telefone</p>
    <p><b>E-mail:</b> $email</p>
    <p><b>Assunto:</b> $assuntomsg</p>
    <p><b>Mensagem:</b> $mensagem</p>

    <h5>Muuuiiitttoooo Obrigado!</h5>
    <h6>Logo responderemos o seu contato.<h6>

    <h7>Este e-mail foi enviado em <b>$data_envio</b> às <b>$hora_envio</b></h7>

</div>
</html>
";

//enviar

// emails para quem será enviado o formulário
$emailenviar = "[email protected]";
$destino = $emailenviar;
$assunto = "Contato no Site";

// É necessário indicar que o formato do e-mail é html
$headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  $headers .= 'From: [email protected], <$email>' . "\r\n";

$enviaremail = mail($destino, $assunto, $arquivo, $headers);
if($enviaremail){
echo "<script>window.location='contato.php';alert('$nome, sua mensagem foi enviada com sucesso! Estaremos retornando em breve');</script>";
}
?>

1 answer

0

Hello, can you show the part of PHP that sends the email? I believe this is where the problem is. If you are using the Phpmailer, follows the solution I use.

<?php 
require_once("PHPMailer_5.2.0/class.phpmailer.php");

$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';

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

try {
    $mail->Host = 'email-ssl.com.br'; // Endereço do servidor SMTP (Autenticação, utilize o host smtp.seudomínio.com.br)
    $mail->SMTPAuth   = true;  // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
    $mail->Port       = 587; //  Usar 587 porta SMTP
    $mail->Username = '[email protected]'; // Usuário do servidor SMTP (endereço de email)
    $mail->Password = 'senha'; // Senha do servidor SMTP (senha do email usado)

    //Define o remetente
    $mail->SetFrom('[email protected]', ''); //Seu e-mail
    $mail->AddReplyTo('[email protected]', 'Nome'); //Seu e-mail
    $mail->Subject = $subject; //Assunto do e-mail


    //Define os destinatário(s)
    $mail->AddAddress($value);

    //$mail->AddCC('[email protected]', 'Destinatario'); // Copia
    //$mail->AddBCC('[email protected]', 'Destinatario2`'); // Cópia Oculta

    $msg_email = 'Mensagem do E-mail';

    //Define o corpo do email
    $mail->MsgHTML($msg_email);  
    $mail->Send(); 


//caso apresente algum erro é apresentado abaixo com essa exceção.
}catch (phpmailerException $e) {
    echo $e->errorMessage(); //Mensagem de erro costumizada do PHPMailer
}
?>
  • This is the full code. I didn’t use Phpmailer. It’s better?

  • @Turkish I really like Phpmailer, I find it simple and practical. example

  • I read a little about Phpmailer and attribute it to my project. But I have the same problem. It sends to my email, but does not go to the recipient informed in the email field of the form. Follow my code below.

Browser other questions tagged

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