Jump to content
salomaobarbosas

Problema ao enviar dados do formulário por e-mail

Recommended Posts

Olá a todos, bom estou em um projeto de construção de um site para uma empresa, nela, estou precisando desenvolver um formulário de contato, porém o mesmo não esta funcionando e ocorre erros não enviando os dados ao e-mail, além de que por ser novato em php não sei como adicionar avisos caso as informações não sejam dos campos corretos. Abaixo estará o código html e php. Desde já agradeço. OBS: Utilizei o Bootstrap também no site html.

<section class="formulario">
      <h1 class="font-weight-light text-black-50 text-center">Contato</h1>
      <p class="font-weight-light text-black-50 text-center"><span style="color:#dc3545">*</span> Campos obrigatórios</p>
      <form class="mt-5" action="contato1.php" name="form_contato" method="post">
        <div class="d-flex">
          <div class="form-group col-md-6">
            <label for="#NomeCompleto" style="font-size: 1.5em;" class="text-black-50 font-weight-light">Nome <span style="color:#dc3545">*</span></label>
            <input type="text" name="nome" class="form-control" id="NomeCompleto" placeholder="Nome Completo" required>
          </div>
          <div class="form-group col-md-6">
            <label for="#EmailEnviar" style="font-size: 1.5em;" class="text-black-50 font-weight-light">Email <span style="color:#dc3545">*</span></label>
            <input type="email" name="email" class="form-control" id="EmailEnviar" placeholder="name@gmail.com" required>
          </div>
        </div>
       <div class="col">
          <label for="#validationDefault05" style="font-size: 1.5em;" class="text-black-50 font-weight-light">Assunto <span style="color:#dc3545">*</span></label>
          <input type="text" name="assunto" class="form-control" placeholder="Assunto sobre a mensagem">
       </div>
       <div class="col">
         <label for="#exampleFormControlTextarea" style="font-size: 1.5em;" class="text-black-50 font-weight-light">Mensagem <span style="color:#dc3545"></span></label>
         <textarea type="text" name="msg" class="form-control rounded-1" id="exampleFormControlTextarea" rows="4" placeholder="Deixe sua mensagem"></textarea>
       </div><Br>
       <div class="col">
       <button type="submit" value="Enviar" class="btn btn-outline-danger btn-lg btn-block">ENVIAR</button>
       </div>
      </form>
    </section>
<?php
# alterar a variavel abaixo colocando o seu email

// header
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=".$charset."\r\n";
$headers .= "Reply-To: ".$email."\r\n";
//$headers .= "Cc: copia@seudominio\r\n"; //CAMPO COPIA OPCIONAL
//$headers .= "Bcc: copiaoculta@seudominio\r\n"; //CAMPO COPIA OCULTA OPCIONAL
$headers .= "Return-Path: comercial@jeaseg.com.br \r\n"; // return-path
$headers .= "From: \"Contato - Site\" \r\n";



$destinatario = "comercial@jeaseg.com.br";

$nome = $_REQUEST['nome'];
$email = $_REQUEST['email'];
$msg = $_REQUEST['msg'];
$assunto = $_REQUEST['assunto'];




 // monta o e-mail na variavel $body

$body = "===================================" . "\n";
$body = $body . "INFORMAÇÕES DE CONTATO" . "\n";
$body = $body . "===================================" . "\n\n";
$body = $body . "Nome: " . $nome . "\n";
$body = $body . "Email: " . $email . "\n";
$body = $body . "Mensagem: " . $msg . "\n\n";
$body = $body . "===================================" . "\n";

// envia o email
$envio = mail($destinatario, $assunto , $body, "From: $email\r\n");

// redireciona para a página de obrigado
header("location:index.html");


?>

Precisa de mais alguma coisa que preciso adicionar? Seja no e-mail oficial da empresa, no código, entre outros?

Share this post


Link to post
Share on other sites

Não é possível enviar email em localhost sem utilização de uma autenticação SMTP.

 

Indico a utilização da classe PHPMailer para isso, é extremamente fácil de utilizar e a mais utilizada, veja: http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer

Baixe no Git também: https://github.com/PHPMailer/PHPMailer

 

Aqui no fórum tem bastante conteúdo sobre, pesquise sobre a classe.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TheRonaldoStar
      Oii, fala ae pessoal!!
      Alguém pode me ajudar com uma coisa por favor?;
      Seguinte!, eu anteriormente fiz uma pergunta aqui no fórum recorrente a isso, mas eu conseguir uma solução parcial.
      Que era, fazer uma listagem de todos os cadastros e fazer a junção dos cadastros com uma coluna igual, Ou seja existem duas colunas [DE e Para], que recebem o id de quem está recebendo ou que está enviando a mensagem, eu conseguir fazer a tal listagem por grupo mas o problema que estou tendo é: que so faz o agrupamento de as colunas contiver o id por ex: [De = "1" e Para ="2"].
      Atualmente estou usando a codificação deste Jeito:
       
      $sql_2 = $db -> prepare("SELECT * FROM privado WHERE (Para = '$Meu_id') Or (De = '$Meu_id') GROUP BY Para, De DESC"); $sql_2 -> execute(); Esta consulta como pode ver ele busca todos os cadastros que tenha o meu ID ou seja do usuário online!, Após a consulta ele vei obter em um "while" somente o [ Id_De eo Id_Para ] desta forma:
      while($dados_2 = $sql_2 -> fetch(PDO::FETCH_OBJ)){ $Id_De = ($dados_2 -> De); $Id_Para = ($dados_2 -> Para); } Mas em fim eu gostaria de saber como mostrar somente um resultado ou seja o ultimo resultado que tiver o meu ID em ambas colunas [ Id_De ou Id_Para ].
      Antes de vocês me recomendar a função DESC LIMIT 'valor' saiba eu quero que liste todos os usuários que enviou ou recebeu minha mensagem não somente 1 ou seja se eu mandar um mensagem para o usuário 2 e ele me retornar uma mensagem vai mostrar somente o ultimo registro que tenha o meu ID e o id dele.
       
      Atenciosamente,
      ~Ronaldo
       
    • By TheRonaldoStar
      Oi, mais cedo eu fiz um post aqui no site mas um pouco longo creio eu que e mais fácio eu fazer uma pergunta mais direta.
      A pergunta é:
      Como posso fazer agrupamentos de uma tabela através de dois campos cujo os valores são =, mesmo que esteja invertidos?
      EX: [DE = "1"], [PARA = "2"].
      E fazer o agrupamento ou só mostrar o ultimo cadastro mesmo que eles estejam invertidos desta forma?
      EX: [DE = "2"], [PARA = "1"].
       
      Acho que agora com este post fui mais claro, Alguém pode me ajudar por favor??.
      Atenciosamente,
      ~Ronaldo
    • By HigorCrds
      Bom, o que eu consegui até agora foi fazer com que, ao usuário clicar em algum dos botões de paginação (1, 2, 3...) o PHP guarde uma SESSION com o número da página correspondente.
      Segue o código:
       
      <!-- BOTÃO COM O NÚMERO DA PÁGINA --> <button onclick="mudaVar(<?php echo $i; ?>);"> <?php echo $i; ?> </button> <!-- FUNÇÃO PARA GUARDAR SESSION PG --> function mudaVar(valor) { $.ajax({ url:'sessions.php?valor='+valor }); } // GUARDA SESSION PG if(isset($_GET['valor'])){ $_SESSION['pg'] = $_GET['valor']; } Até aí tudo bem, só que o problema é que a SESSION não é alterada naquele momento, só quando eu atualizo a página.
      Como corrigir isso?
    • By Vinicius Bazan
      Bom dia, Boa tarde e Boa noite!
       
        Estava eu aqui brincando um pouco com JS para entender um pouco melhor essa linguagem, pois eu preciso fazer um relógio em uma pagina HTML e um contador que aumente seu número em +1 de tempos em tempos ( no caso eu estava testando em aumentar a cada 5 segundos, considerando que esse número não vai começar do 0, pois ele teria que pegar todos os segundos que já se passaram nesse dia e dividir por 5, assim seu resultado inteiro seria exibido).
        O relógio com bastante esforço e pesquisa eu consegui fazer e está funcionando, até aqui sem dificuldades, o real problema está no contador, eu fui testar sem colocar um setInterval só para ver se o número aparece na tela e... NADA!
       Então como eu não manjo de JS e tentei fazer a partir do que eu usei pra fazer o relógio eu devo ter errado feio em muita coisa.
       
      <!DOCTYPE html> <html> <head> <title>javascript</title> <meta charset="utf-8"> <script type="text/javascript"> function relogio() { var data = new Date(); var horas = data.getHours(); var minutos = data.getMinutes(); var segundos = data.getSeconds(); if (horas < 10) { horas = "0"+horas; } if (minutos < 10) { segundos = "0"+minutos; } if (segundos < 10) { segundos = "0"+segundos; } document.getElementById("relogio").innerHTML=horas+":"+minutos+":"+segundos; } window.setInterval("relogio()",1000); // Aqui começa a função que eu tentei fazer para o contador function contador() { var data = new Date(); var horas = data.getHours(); var minutos = data.getMinutes(); var segundos = data.getSeconds(); var cont = ((minutos + (horas * 60))*60) + segundos ; document.getElementById("contador").innerHTML= Math.floor(cont/5); } </script> <style type="text/css"> #relogio { font:bold 28pt arial; display: block; margin: 100px auto; padding: 30px; background-color: #FFFF00; width: 150px; border-radius: 6px; box-shadow: 0px 0px 5px rgba(0, 0, 0, .5); } #contador { font:bold 28pt arial; display: block; margin: 100px auto; padding: 30px; background-color: #FFFF00; width: 150px; border-radius: 6px; box-shadow: 0px 0px 5px rgba(0, 0, 0, .5); } </style> </head> <body onload="relogio();"> <div id="relogio"> </div> <hr> <div id="contador"> </div> </body> </html>  
       Se alguém puder me ajudar eu agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.