1
resposta

Qual boa pratica para enviar dados de um formulário por email?

Em uma pagina com HTML, CSS e JS. Qual forma mais segura e melhor para se enviar um e-mail com os dados de um formulário?

1 resposta

Olá Livio, tudo bem contigo?

Uma forma segura e eficiente de enviar dados de um formulário por e-mail em uma página feita com HTML, CSS e JS é utilizando uma linguagem de programação do lado do servidor, como PHP, Python ou Node.js. Essa abordagem permite que você processe os dados do formulário no servidor e envie o e-mail de forma segura.

Aqui está um exemplo de como você pode enviar um e-mail usando PHP:

  • Crie um arquivo PHP separado para processar o formulário e enviar o e-mail. Por exemplo, enviar_email.php.

  • No arquivo HTML onde você tem o formulário, defina o atributo action do elemento <form> para apontar para o arquivo PHP que você criou. Por exemplo:

      <form action="enviar_email.php" method="POST">
        <!-- Seus campos de formulário aqui -->
        <input type="text" name="nome">
        <input type="email" name="email">
        <!-- Resto dos campos do formulário -->
        <input type="submit" value="Enviar">
      </form>
  • No arquivo enviar_email.php, você pode usar a função mail() do PHP para enviar o e-mail. Aqui está um exemplo básico:

      <?php
        $nome = $_POST['nome'];
        $email = $_POST['email'];
        // Resto dos campos do formulário
    
        $destinatario = 'seu-email@example.com';
        $assunto = 'Novo formulário de contato';
        $mensagem = "Nome: $nome\nE-mail: $email\n"; // Adicione aqui os outros campos
    
        // Envie o e-mail
        mail($destinatario, $assunto, $mensagem);
      ?>

É importante ressaltar que o exemplo acima é apenas uma implementação básica e pode ser necessário adicionar mais validações e medidas de segurança, como filtrar e escapar os dados enviados pelo formulário para evitar ataques de injeção de código ou spam.

Além disso, você também pode considerar o uso de bibliotecas ou serviços de terceiros para enviar e-mails, como o PHPMailer ou o SendGrid. Essas bibliotecas oferecem recursos mais avançados e podem simplificar o processo de envio de e-mails com autenticação e criptografia.


Agora se você deseja enviar um e-mail usando apenas JavaScript ou uma biblioteca/framework JavaScript, uma opção popular é usar a API Fetch para enviar uma solicitação POST para um servidor que irá processar e enviar o e-mail.

Você precisará ter um servidor que possa receber a solicitação POST e enviar o e-mail, pois o JavaScript no navegador do cliente não tem acesso direto ao servidor de e-mail.

Aqui está um exemplo de como você pode usar a API Fetch para enviar dados de um formulário para um servidor que processará e enviará o e-mail:

  • No seu arquivo HTML, defina o formulário com os campos necessários:

      <form id="meuFormulario">
        <input type="text" id="nome" name="nome" placeholder="Seu nome">
        <input type="email" id="email" name="email" placeholder="Seu e-mail">
        <!-- Resto dos campos do formulário -->
        <button type="submit">Enviar</button>
      </form>
  • No seu arquivo JavaScript, adicione o código para capturar o evento de envio do formulário e enviar os dados para o servidor:

      document.getElementById('meuFormulario').addEventListener('submit', function (e) {
        e.preventDefault(); // Evita o envio padrão do formulário
    
        // Coleta os dados do formulário
        var nome = document.getElementById('nome').value;
        var email = document.getElementById('email').value;
        // Resto dos campos do formulário
    
        // Monta o objeto com os dados do formulário
        var dadosFormulario = {
          nome: nome,
          email: email
          // Resto dos campos do formulário
        };
    
        // Envia a solicitação POST usando a API Fetch
        fetch('url-do-seu-servidor', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(dadosFormulario)
        })
        .then(function(response) {
          if (response.ok) {
            alert('E-mail enviado com sucesso!');
            // Faça algo depois que o e-mail for enviado
          } else {
            alert('Ocorreu um erro ao enviar o e-mail.');
            // Trate o erro de envio do e-mail
          }
        })
        .catch(function(error) {
          alert('Ocorreu um erro ao enviar o e-mail.');
          // Trate o erro de rede ou outro erro
        });
      });
  • No servidor que receberá a solicitação POST, você precisará implementar a lógica para processar os dados e enviar o e-mail. Isso pode ser feito usando a linguagem/framework que você preferir no lado do servidor, como Node.js, PHP, Python, etc.

Lembre-se de que você precisará ter um servidor configurado e pronto para receber a solicitação POST, processar os dados e enviar o e-mail. Essa parte do processo pode variar dependendo da sua configuração e do ambiente de hospedagem que você está usando.

Embora seja possível usar apenas JavaScript para enviar a solicitação POST e processar os dados no servidor, é importante ter em mente que, para o envio de e-mails, você precisará de um servidor do lado do servidor para realizar essa tarefa específica.

Em suma seria isso, caso precise estarei aqui. Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software