Ir para conteúdo
Exrcst

Enviar dados de um formulário para email

Recommended Posts

Boa noite gente, então galera, sou um desenvolvedor iniciante ainda, e, não consigo ter facilidade com formulários, e preciso fazer um para o meu projeto, já achei uns prontos, mas o problema realmente é na hora de enviar os dados para algum email, o site é hospedado na LocaWeb, o que eu deveria fazer na aba de email para conseguir mandar? Alguem, se possível poderia me explicar como funcionam os formulários e o que é necessário para poder enviar os dados para um email. Grato desde já, tenham uma boa noite, até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Penso que vai ter que trabalhar com php. Pois terá que passar os dados via php para o servidor e no php é que existe um arquivo, script, que executa essa tarefa. Pois no servidor é que terá a funcionalidade de enviar emails!

 

Terá que ser serverside e nunca clientside. Pois o cliente não tem capacidade de enviar emails. Mas aguarde por respostas dos mais pros! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

a melhor forma é usando php ou outra linguagem server side. tu pode criar o formulário numa página html mesmo e envia para uma php que pega os dados e envia usando uma biblioteca de email do próprio php algo tipo

 

página contato.html

...
<form method='post' action='enviar_email.php'> <!-- os dados vai ser enviado para a página que está definida no action=' ' -->
    <input type='text' name='nome'>
    <input type='text' name='email'> <!-- observa o name em cada um dos campos -->
    <input type='text' name='idade'> <!-- é por eles que o php vai pegar os valores dos campos -->
    <teatarea name='mensagem'></textarea>
    <input type='submit' name='enviar' value='Enviar'>
</form>
...

 

página enviar_email.php

//isset checa se o botão enviar foi clicado e só vai disparar o email se for verdadeiro
if(isset($_POST['enviar'])){
    $assunto = "solicitação de orçamento";

    // pegando os dados do form...
    $msg = "Nome: " . $_POST["nome"] . "<br>";
    $msg .= "Email: " . $_POST["email"] . "<br>";
    $msg .= "Idade: " . $_POST["idade"] . "<p>";
    $msg .= "Mensagem:<br>" . $_POST["mensagem"];

    // email onde tu vai receber a mensagem
    $destinatario = "meuemail@gmail.com";

    // headers que prepara a mensagem
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "From: " . $_POST["nome"] . "<" . $_POST["email"] . ">\r\n";
    $headers .= "Reply-To: " . $_POST["email"] . "\r\n";

    // envia o email...
    mail($destinatario,$assunto,$msg,$headers);

    // volta para contato.html
    header("Location: contato.html");
}

 

mais ou menos isso veja se consegue adaptar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marsolim, me esclarece uma questão!

Quem tem a capacidade de enviar o email é o servidor através da linguagem php, certo?

 

Vamos imaginar o seguinte: crio um servidor ubuntu server, instalo o php mais o apache ou nginx e com a tua abordagem consigo enviar emails via servidor a partir dos meus clientes (pc ligados na rede do servidor ubuntu server). Certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é só ter o servidor php não tem que ter um servidor de email também instalado e ainda habilitar umas linhas no .ini do php veja os posts desse tópico https://pt.stackoverflow.com/questions/40858/como-enviar-e-mail-do-localhost-usando-a-função-mail-do-php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, dúvida de alguém que acabou de começar: eu só consigo testar esse formulário depois que o site estiver online?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/04/2017 at 13:39, marsolim disse:

a melhor forma é usando php ou outra linguagem server side. tu pode criar o formulário numa página html mesmo e envia para uma php que pega os dados e envia usando uma biblioteca de email do próprio php algo tipo

 

página contato.html


...
<form method='post' action='enviar_email.php'> <!-- os dados vai ser enviado para a página que está definida no action=' ' -->
    <input type='text' name='nome'>
    <input type='text' name='email'> <!-- observa o name em cada um dos campos -->
    <input type='text' name='idade'> <!-- é por eles que o php vai pegar os valores dos campos -->
    <teatarea name='mensagem'></textarea>
    <input type='submit' name='enviar' value='Enviar'>
</form>
...

 

página enviar_email.php


//isset checa se o botão enviar foi clicado e só vai disparar o email se for verdadeiro
if(isset($_POST['enviar'])){
    $assunto = "solicitação de orçamento";

    // pegando os dados do form...
    $msg = "Nome: " . $_POST["nome"] . "<br>";
    $msg .= "Email: " . $_POST["email"] . "<br>";
    $msg .= "Idade: " . $_POST["idade"] . "<p>";
    $msg .= "Mensagem:<br>" . $_POST["mensagem"];

    // email onde tu vai receber a mensagem
    $destinatario = "meuemail@gmail.com";

    // headers que prepara a mensagem
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "From: " . $_POST["nome"] . "<" . $_POST["email"] . ">\r\n";
    $headers .= "Reply-To: " . $_POST["email"] . "\r\n";

    // envia o email...
    mail($destinatario,$assunto,$msg,$headers);

    // volta para contato.html
    header("Location: contato.html");
}

 

mais ou menos isso veja se consegue adaptar

Não funcionou, o email não está sendo enviado, o que fiz errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 15/04/2018 at 00:43, LCher disse:

Pessoal, dúvida de alguém que acabou de começar: eu só consigo testar esse formulário depois que o site estiver online?

Sim, em questão de enviar emails é só quando o site ja estiver no ar, mas se você quiser só testar suas habilidades em fazer forms pode fazer tudo off msm.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/04/2017 at 13:39, marsolim disse:

a melhor forma é usando php ou outra linguagem server side. tu pode criar o formulário numa página html mesmo e envia para uma php que pega os dados e envia usando uma biblioteca de email do próprio php algo tipo

 

página contato.html


...
<form method='post' action='enviar_email.php'> <!-- os dados vai ser enviado para a página que está definida no action=' ' -->
    <input type='text' name='nome'>
    <input type='text' name='email'> <!-- observa o name em cada um dos campos -->
    <input type='text' name='idade'> <!-- é por eles que o php vai pegar os valores dos campos -->
    <teatarea name='mensagem'></textarea>
    <input type='submit' name='enviar' value='Enviar'>
</form>
...

 

página enviar_email.php


//isset checa se o botão enviar foi clicado e só vai disparar o email se for verdadeiro
if(isset($_POST['enviar'])){
    $assunto = "solicitação de orçamento";

    // pegando os dados do form...
    $msg = "Nome: " . $_POST["nome"] . "<br>";
    $msg .= "Email: " . $_POST["email"] . "<br>";
    $msg .= "Idade: " . $_POST["idade"] . "<p>";
    $msg .= "Mensagem:<br>" . $_POST["mensagem"];

    // email onde tu vai receber a mensagem
    $destinatario = "meuemail@gmail.com";

    // headers que prepara a mensagem
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers .= "From: " . $_POST["nome"] . "<" . $_POST["email"] . ">\r\n";
    $headers .= "Reply-To: " . $_POST["email"] . "\r\n";

    // envia o email...
    mail($destinatario,$assunto,$msg,$headers);

    // volta para contato.html
    header("Location: contato.html");
}

 

mais ou menos isso veja se consegue adaptar

ele não ta enviando completo ali quando coloco o resto das informações como numero de celular ou algo assim ele envia só a ultima caixa de informação q pede no formulário. o resto não vai

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 27/11/2018 at 18:05, gilbertjuniors disse:

Não funcionou, o email não está sendo enviado, o que fiz errado?

seu php nos valores que ele busca do html tem q ser ASPAS simples e esta dupla!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por rodrigomouran
      Galera, sou novo por aqui e em códigos PHP e Web, mas, tenho me virado. Porém esbarrei em um problema.
      Estou usando um banco PostgreSQL para desenvolvimento de uma aplicação simples para minha empresa onde eu quero digitar um código numérico no campo do formulário e ele me retornar 2 outros campos deste formulário preenchidos baseado no código pesquisado no banco.
      Tenho a minha página index.html com o conteúdo:
      <html> <head>   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>   <script type="text/javascript">   $(document).ready(function(){     $("input[name='usucod']").blur(function(){       var $usunom = $("input[name='usunom']");       var $pricod = $("input[name='pricod']");       $usunom.val('Carregando...');       $pricod.val('Carregando...');         $.getJSON(           'function.php',           { usucod: $( this ).val() },           function( json )           {             $usunom.val( json.usunom );             $pricod.val( json.pricod );           }         );     });   });   </script> </head> <body>   <form action="" method="post">     <label>Código: <input type="text" name="usucod" /></label>     <label>Nome: <input name="usunom" type="text" disabled="disabled" value="" /></label>     <label>Pricod: <input type="text" name="pricod" value="" /></label>   </form> </body> </html> e minha página function.php com o conteúdo:
      <?php   /**    * função que devolve em formato JSON os dados do cliente    */   function retorna( $usucod, $db )   {     $sql = "SELECT usucod, usunom, pricod FROM usuario WHERE usucod = {$usucod} ";     $query = $db->query( $sql );     $arr = Array();     if( $query->num_rows )     {       while( $dados = $query->fetch_object() )       {         $arr['usunom'] = $dados->usunom;         $arr['pricod'] = $dados->pricod;       }     }     else       $arr['usunom'] = 'não encontrado';     return json_encode( $arr );   } /* só se for enviado o parâmetro, que devolve os dados */ if( isset($_GET['usucod']) ) {   $db = pg_connect("host=XXX.XXX.XXX.XXX port=5432 dbname=banco user=usuario password=senha");   echo retorna( filter ( $_GET['usucod'] ), $db ); } function filter( $var ){   return $var; } Ao digitar o código, meus campos a serem preenchidos ficam somente com o valor 'carregando...' visível.
       
       
       
      Agradeço a ajuda!

    • Por fmcmf
      Boa tarde...
      Tenho um formulário no site e o envio é usando o PHPMailer... o email está chegando no destino.... mas o conteúdo inserido nos campos não chega.
       
      Segue o código do formulário em html:
       
      <div id="banner"> <img class="fotobanner" src="img/comprar.png" alt=""> </div> <div class="formulario"> <h3 align="center"> PREENCHA OS DADOS ABAIXO PARA CONTRATAR: </h3> <form action=”envia.php” method=”post” id=”contato”> <div class="form-group"> <label for="exampleFormControlInput1">Nome completo:</label> <input type="nome" class="form-control" id="nome" placeholder="Nome" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">CPF:</label> <input type="cpf" class="form-control" id="cpfcli" placeholder="CPF" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero:</label> <select class="form-control" id="generocli" required> <option>Feminino</option> <option>Masculino</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">Data de Nascimento (dia/mês/ano):</label> <input type="" class="form-control" id="nasccli" placeholder="Data de nascimento (dia/mês/ano)" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Estado Civil:</label> <select class="form-control" id="ecivilcli" required> <option>Casado(a)</option> <option>Solteiro(a)</option> <option>Divorciado(a)</option> <option>Viúvo(a)</option> </select> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">Endereço Completo + CEP:</label> <textarea class="form-control" id="endcli" rows="3" required></textarea> </div> <div class="form-group"> <label for="exampleFormControlInput1">Celular com DDD:</label> <input type="" class="form-control" id="celcli" placeholder="Celular com DDD" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">E-mail:</label> <input type="" class="form-control" id="emailcli" placeholder="E-mail" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PLANO Desejado:</label> <select class="form-control" id="plano" required> <option>SELECT</option> <option>PLUS</option> <option>TOP</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">NOME do PET:</label> <input type="" class="form-control" id="nomedopet" placeholder="NOME do PET" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">IDADE do PET:</label> <input type="" class="form-control" id="idadedopet" placeholder="IDADE do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Tipo do PET:</label> <select class="form-control" id="tipodopet" required> <option>GATO</option> <option>CACHORRO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero do PET:</label> <select class="form-control" id="generodopet" required> <option>FÊMEA</option> <option>MACHO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">RAÇA do PET:</label> <input type="" class="form-control" id="racadopet" placeholder="RAÇA do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PORTE do PET:</label> <select class="form-control" id="portedopet" required> <option>Pequeno</option> <option>Médio</option> <option>Grande</option> </select> </div> <div class="dobotao"> <button type="submit" class="botao"> <strong>ENVIAR DADOS </strong> </button></div> </form></div> Segue o código do enviar.php
       
      <?php require 'PHPMailerAutoload.php'; require 'class.phpmailer.php'; $mailer = new PHPMailer; //$mailer->SMTPDebug = 2; // Enable verbose debug output $mailer->isSMTP(); // Set mailer to use SMTP $mailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if($_GET['acao'] = 'enviar'){ $nome = $_POST['nome']; $cpfcli = $_POST['cpfcli']; $generocli = $_POST['generocli']; $nasccli = $_POST['nasccli']; $ecivilcli = $_POST['ecivilcli']; $celcli = $_POST['celcli']; $plano = $_POST['plano']; $nomedopet = $_POST['nomedopet']; $tipodopet = $_POST['tipodopet']; $generodopet = $_POST['generodopet']; $racadopet = $_POST['racadopet']; $portedopet = $_POST['portedopet']; $mailer->Host = 'pleskl0040.hospedagemdesites.ws'; $mailer->SMTPAuth = true; // Enable SMTP authentication $mailer->IsSMTP(); $mailer->isHTML(true); // Set email format to HTML $mailer->Port = 587; // Ativar condição utf-8, para acentuação $mailer->CharSet = 'UTF-8'; $mailer->Username = 'formulario@thna.com.br'; // SMTP username $mailer->Password = '@Nathi1010'; // SMTP password // email do destinatario $address = "formulario@thna.com.br"; //$mailer->SMTPDebug = 1; $corpoMSG = "nome: $nome <br> cpf: $cpfcli <br> genero: $generocli <br> nascimento: $nasccli <br> estado: $ecivilcli <br> celular: $cel <br> plano: $plano <br> pet: $nomedopet <br> tipo: $tipodopet generopet $generodopet <br> racapet: $racadopet <br> porte: $portedopet"; $mailer->AddAddress($address, "destinatario"); $mailer->AddAddress("formulario@thna.com.br", "destinatario 2"); // 2º destinatário se querer enviar, se não, comente com // $mailer->From = 'formulario@thna.com.br'; $mailer->Sender = 'formulario@thna.com.br'; $mailer->FromName = "Site Saúde PET"; // Seu nome // assunto da mensagem $mailer->Subject = $assunto; // corpo da mensagem $mailer->MsgHTML($corpoMSG); if(!$mailer->Send()) { echo "Erro: " . $mailer->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } header('Location: /pet/confirmado.html');  ?> Como comentei,  o email chega... mas o conteúdo do form não chega... Segue anexo print da caixa do e-mail:
       
      Desde já agradeço.

    • Por fmcmf
      Boa tarde...
      Tenho um formulário no site e o envio é usando o PHPMailer... o email está chegando no destino.... mas o conteúdo inserido nos campos não chega.
       
      Segue o código do formulário em html:
      <div id="banner"> <img class="fotobanner" src="img/comprar.png" alt=""> </div> <div class="formulario"> <h3 align="center"> PREENCHA OS DADOS ABAIXO PARA CONTRATAR: </h3> <form action=”envia.php” method=”post” id=”contato”> <div class="form-group"> <label for="exampleFormControlInput1">Nome completo:</label> <input type="nome" class="form-control" id="nome" placeholder="Nome" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">CPF:</label> <input type="cpf" class="form-control" id="cpfcli" placeholder="CPF" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero:</label> <select class="form-control" id="generocli" required> <option>Feminino</option> <option>Masculino</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">Data de Nascimento (dia/mês/ano):</label> <input type="" class="form-control" id="nasccli" placeholder="Data de nascimento (dia/mês/ano)" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Estado Civil:</label> <select class="form-control" id="ecivilcli" required> <option>Casado(a)</option> <option>Solteiro(a)</option> <option>Divorciado(a)</option> <option>Viúvo(a)</option> </select> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">Endereço Completo + CEP:</label> <textarea class="form-control" id="endcli" rows="3" required></textarea> </div> <div class="form-group"> <label for="exampleFormControlInput1">Celular com DDD:</label> <input type="" class="form-control" id="celcli" placeholder="Celular com DDD" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">E-mail:</label> <input type="" class="form-control" id="emailcli" placeholder="E-mail" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PLANO Desejado:</label> <select class="form-control" id="plano" required> <option>SELECT</option> <option>PLUS</option> <option>TOP</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">NOME do PET:</label> <input type="" class="form-control" id="nomedopet" placeholder="NOME do PET" required> </div> <div class="form-group"> <label for="exampleFormControlInput1">IDADE do PET:</label> <input type="" class="form-control" id="idadedopet" placeholder="IDADE do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Tipo do PET:</label> <select class="form-control" id="tipodopet" required> <option>GATO</option> <option>CACHORRO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlSelect1">Gênero do PET:</label> <select class="form-control" id="generodopet" required> <option>FÊMEA</option> <option>MACHO</option> </select> </div> <div class="form-group"> <label for="exampleFormControlInput1">RAÇA do PET:</label> <input type="" class="form-control" id="racadopet" placeholder="RAÇA do PET" required> </div> <div class="form-group"> <label for="exampleFormControlSelect1">PORTE do PET:</label> <select class="form-control" id="portedopet" required> <option>Pequeno</option> <option>Médio</option> <option>Grande</option> </select> </div> <div class="dobotao"> <button type="submit" class="botao"> <strong>ENVIAR DADOS </strong> </button></div> </form></div>  
      Segue o código do enviar.php

       
      <?php require 'PHPMailerAutoload.php'; require 'class.phpmailer.php'; $mailer = new PHPMailer; //$mailer->SMTPDebug = 2; // Enable verbose debug output $mailer->isSMTP(); // Set mailer to use SMTP $mailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if($_GET['acao'] = 'enviar'){ $nome = $_POST['nome']; $cpfcli = $_POST['cpfcli']; $generocli = $_POST['generocli']; $nasccli = $_POST['nasccli']; $ecivilcli = $_POST['ecivilcli']; $celcli = $_POST['celcli']; $plano = $_POST['plano']; $nomedopet = $_POST['nomedopet']; $tipodopet = $_POST['tipodopet']; $generodopet = $_POST['generodopet']; $racadopet = $_POST['racadopet']; $portedopet = $_POST['portedopet']; $mailer->Host = 'pleskl0040.hospedagemdesites.ws'; $mailer->SMTPAuth = true; // Enable SMTP authentication $mailer->IsSMTP(); $mailer->isHTML(true); // Set email format to HTML $mailer->Port = 587; // Ativar condição utf-8, para acentuação $mailer->CharSet = 'UTF-8'; $mailer->Username = 'formulario@thna.com.br'; // SMTP username $mailer->Password = '@Nathi1010'; // SMTP password // email do destinatario $address = "formulario@thna.com.br"; //$mailer->SMTPDebug = 1; $corpoMSG = "nome: $nome <br> cpf: $cpfcli <br> genero: $generocli <br> nascimento: $nasccli <br> estado: $ecivilcli <br> celular: $cel <br> plano: $plano <br> pet: $nomedopet <br> tipo: $tipodopet generopet $generodopet <br> racapet: $racadopet <br> porte: $portedopet"; $mailer->AddAddress($address, "destinatario"); $mailer->AddAddress("formulario@thna.com.br", "destinatario 2"); // 2º destinatário se querer enviar, se não, comente com // $mailer->From = 'formulario@thna.com.br'; $mailer->Sender = 'formulario@thna.com.br'; $mailer->FromName = "Site Saúde PET"; // Seu nome // assunto da mensagem $mailer->Subject = $assunto; // corpo da mensagem $mailer->MsgHTML($corpoMSG); if(!$mailer->Send()) { echo "Erro: " . $mailer->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } header('Location: /pet/confirmado.html'); ?> Como comentei,  o email chega... mas o conteúdo do form não chega... Segue anexo print da caixa do e-mail:
       
      Desde já agradeço.
       
       
       
       

    • Por Roberto S. Santos
      Boa noite devs.
      Poderiam me ajudar ?
      Estou querendo fazer o seguinte em um formulário PHP...
      O usuário deve cadastrar a sua data e horário do uso na churrasqueira e quando chegar nesta data e no horário final ele apaga os dados do cadastro desta reserva.
      Como posso fazer isto com PHP ?
      Temos...
      data reserva
      hora reserva  (hora inicial)
      hora final (já vai estar pré definida na base de dados)
      Banco de Dados : clientes
      Tabela : reserva
      Deus abençoe a todos.
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.