Jump to content
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.

Share this post


Link to post
Share on other 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! :)

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other 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!

 

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 duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
    • By ROGERIO AMERICA
      Boa tarde. Possuo 1 bd com tabela principal empresa=(não editável), atendente=(não editável), consultor=(não editável), operadoras=(não editável), e a "agenda" que é editável. Criei uma página www onde eu mostraria os dados empresa juntamente com campos "agenda" para trabalhar com as informações disponíveis e coletadas para gerar dados na agenda. Gostaria que pudessem me ajudar ou indicar uma forma onde eu possa unir todos dados envolvidos nessa agenda conforme figuras.
      O código abaixo mostra os dados do cliente:
      <form> <input type="text" size="5" name="id_empresa" value="<?php echo $empresa['id_empresa']; ?>"><br></br> <input type="text" size="12" name="cnpj" value="<?php echo $empresa['cnpj']; ?>"> <input type="text" size="53" name="empresa" value="<?php echo $empresa['empresa']; ?>"><br></br> <input type="text" size="33" name="endereço" value="<?php echo $empresa['endereço']; ?>"> <input type="text" size="3" name="nº" value="<?php echo $empresa['nº']; ?>"> <input type="text" size="24" name="complemento" value="<?php echo $empresa['complemento']; ?>"><br></br> <input type="text" size="23" name="bairro" value="<?php echo $empresa['bairro']; ?>"> <input type="text" size="22" name="cidade" value="<?php echo $empresa['cidade']; ?>"> <input type="text" size="3" name="uf" value="<?php echo $empresa['uf']; ?>"> <input type="text" size="7" name="cep" value="<?php echo $empresa['cep']; ?>"><br></br> <input type="text" size="35" name="admin" value="<?php echo $empresa['contato']; ?>"> <input type="text" size="11" name="fone1 " value="<?php echo $empresa['fone1']; ?>"> <input type="text" size="11" name="fone2" value="<?php echo $empresa['fone2']; ?>"><br></br> <input type="text" size="40" name="email" value="<?php echo $empresa['email']; ?>"> <input type="text" size="3" name="linhas ativas" value="<?php echo $empresa['linhas ativas']; ?>"> <input type="text" size="8" name="vencimento" value="<?php echo $empresa['vencimento']; ?>"> </form> O código abaixo mostra os campos editáveis:
      $tem plano = $_POST["tem plano"]; $qtde de linhas = $_POST["qtde de linhas"]; $fatura media = $_POST["fatura media"]; $visita = $_POST["visita"]; $data = $_POST["data"]; $hora = $_POST["hora"]; $tipo de visita = $_POST["tipo de visita"]; $resenha = $_POST["resenha"];
           
          $string_sql = "INSERT INTO agenda (plano,qtde de linhas,fatura media,visita,data, hora,tipo de visita, resenha ) VALUES (null,'$plano','$qtde de linhas','$fatura','$visita','$data','$hora','$tipo de visita','$resenha')"; //String com consulta SQL da inserção
           
          mysql_query($string_sql,$conexao); //Realiza a consulta
           
       
      if(mysql_affected_rows() == 1){ //verifica se foi afetada alguma linha, nesse caso inserida alguma linha echo "<p>Cadastro feito com sucesso</p>"; echo '<a href="empresa.php">Voltar para formulário de cadastro</a>'; //Apenas um link para retornar para o formulário de cadastro } else { echo "Erro, não possível inserir no banco de dados"; } mysql_close($conexao); //fecha conexão com banco de dados ?> abaixo temos a premissa de funcionamento: 
       

      e abaixo temos a suposta tela de trabalho:"ainda esta sem CSS" 

      Como fazer para o form alimentar a tabela agenda sendo que 1 parte dos dados é só para visualização e a outra é editável e ao salvar, ir para próxima empresa? Obs: Estou querendo implementar isso pois descobri que a empresa de CRM que eu pagava estava vendendo Mailing para concorrentes. (era pago)
       
    • By FabianoSouza
      Eu uso um form multipart para poder enviar dados e arquivo junto.
      Para manipular o arquivo (imagem) uso um script para fazer upload sem uso de componentes. Tudo funciona.
      Só ocorre erro quando tento recuperar valores de checkbox e radio se não estiverem marcados.
       
      Queria saber se alguém pode ter ideia  onde possa estar o problema.
       
       
      Para recuperar o valor dos campos uso dessa forma:
       
      Dim byteCount byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Set UploadRequest = CreateObject("Scripting.Dictionary") BuildUploadRequest RequestBin 'Aqui recupero os valores do form nome = UploadRequest.Item("nome").Item("Value") dataNascimento = UploadRequest.Item("dataNascimento").Item("Value") 'Aqui ocorre erro se o checkbox do form não estiver marcado favorito = UploadRequest.Item("favorito").Item("Value")  
      A "biblioteca" que faz o upload é essa (eu uso como um include):
       
      <% ' Upload Sem componentes --------------------------------------- Sub BuildUploadRequest(RequestBin) on error resume next PosBeg = 1 PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13))) boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg) BoundaryPos = InStrB(1, RequestBin, boundary) Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--"))) Dim UploadControl Set UploadControl = CreateObject("Scripting.Dictionary") Pos = InStrB(BoundaryPos, RequestBin, getByteString("Content-Disposition")) Pos = InStrB(Pos, RequestBin, getByteString("name=")) PosBeg = Pos + 6 PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34))) Name = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg)) PosFile = InStrB(BoundaryPos, RequestBin, getByteString("filename=")) PosBound = InStrB(PosEnd, RequestBin, boundary) If PosFile <> 0 And (PosFile < PosBound) Then PosBeg = PosFile + 10 PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34))) FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg)) UploadControl.Add "FileName", FileName Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:")) PosBeg = Pos + 14 PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13))) ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg)) UploadControl.Add "ContentType", ContentType PosBeg = PosEnd + 4 PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2 Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg) Else Pos = InStrB(Pos, RequestBin, getByteString(Chr(13))) PosBeg = Pos + 4 PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2 Value = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg)) End If UploadControl.Add "Value", Value UploadRequest.Add Name, UploadControl BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary) Loop End Sub Function getByteString(StringStr) For i = 1 To Len(StringStr) Char = Mid(StringStr, i, 1) getByteString = getByteString & ChrB(AscB(Char)) Next End Function Function getString(StringBin) getString = "" For intCount = 1 To LenB(StringBin) getString = getString & Chr(AscB(MidB(StringBin, intCount, 1))) Next End Function Server.ScriptTimeout=900 ' Fim upload sem Componentes ----------------------------------------- %>  
       
    • By vbnovak
      Pessoal, tudo bem?
       
      Eu infelizmente sou uma pessoa muito newbie no Access, e extremamente enferrujada no VBA, e eu tenho que criar um banco de dados para importar várias planilhas de Mês/Ano (Ex.: 012018; 022018) sempre do mesmo modelo/molde/afins, e no fim, gerar um relatório com as informações importadas. O modelo relatório e o modelo tabela estão prontos, entretanto, não sei como criar o formulário que faça:
       
      1º: Clicar no botão procurar arquivo;
      2º: Solicite o Mes/Ano do arquivo que será importado;
      3º: Abra a API do Windows de localizar arquivo;
      4º: Ao selecionar e importar o arquivo, dê baixa na tabela definida.
       
      A tabela e o arquivo tem todos as mesmas colunas, entretanto, eu inseri a coluna MesAno na tabela que deverá ser inserida conforme a pergunta que foi solicitada no formulário. Pois o relatório será gerado de acordo com essa coluna.
    • By Alesson Mendes
      Fala galera,
      Sou novato em Desenvolvimento Web, e estou precisando fazer uma inserção de dados sem atualizar a pagina.
      Preciso alterar varios valores de uma tabela, portanto fiz um table e dentro dele coloquei um form nos campos que desejo editar.
      O problema que quero utilizar a funçao onblur para fazer o submit a cada alteração. Consegui fazer isto definindo a rota no formulário e criando uma função javascript onblur.
      Porém ele manda para meu php, onde insere os dados mas redireciona a rota.
      vi em varios outros foruns, mas nao consegui implementar o AJAX no meu projeto.
      Conseguem me dar uma mão na no codigo, como utilizo o AJAX com o laravel.
      Muito obrigado
       
       
      <script type="text/javascript">
          $(document).ready(function(){
              $("#prest").on('blur', function() { //evento de sair de foco do edit
                  
                  var valor = $('#prest').val();
               $('#form').submit();//efetua submit no formulario
              });
                 
          });
      </script>
       
       
       
      <table>
                  <thead>
                      <tr>
                          <th>Cotação</th>
                          <th>Codigo</th>
                          <th>Descrição</th>
                          <th>Cod Barras</th>
                          <th>Qtde Cotação</th>
                      </tr>
                  </thead>
                  <tbody>
                      @foreach($registros as $registro)
                      <tr>
                          <td>{{ $registro->prod_codigo }}</td>
                          <td>{{ $registro->prod_descricao }}</td>
                          <td>{{ $registro->prod_barras}}</td>
                          <td>{{ $registro->prod_qtde}}</td>
                          <td>
                              <form action="{{ route('preco.incluir' , $registro->id) }}" method="post" class="" id="form" name="form" enctype="multipart/form-data">
                                  {{csrf_field()}}
                                  <input type="hidden" name="_method" value="put">
                                  <input type="text" name="prest" id="prest" value="" >
                              </form>
                          </td>
                      </tr>
                      @endforeach
                              </tbody>
                          </table>
×

Important Information

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