Você está na página 1de 16

 Códigos Prontos
 Templates
 Web
 Sobre
 Contato
Como fazer um formulário de envio de e-mail em PHP
PRÓXIMO

Como fazer formulário de contato simples usando html e css


ANTERIOR

Link Efeito Reflexo com Css


Postado: 6 de setembro de 2022

Como fazer um formulário de envio de e-mail em PHP


Este tutorial mostra como criar um formulário de contato com HTML e Css e
enviar os dados com php.
Nesta seção, projetaremos uma estrutura simples na tag <form>.
temos dentro da tag <form> as tags <input>, <textarea> e <button>. Essas
tags usaremos para criar o nosso formulário de envio de email com php.
Como criar um formulário em HTML e PHP?
Segui o passo a passo abaixo.

Vamos Adicionar o HTML


<form class="formulario" method="post" action="enviaEmail.php">

<h1 class="title"><i class="icon icon-mail-1"></i> Fale Conosco</h1>

<label class="label">

<span>Nome</span>

<input type="text" name="nome" class="campo" placeholder="Digite seu nome" required=""/>

</label>

<label class="label">

<span>E-mail</span>

<input type="email" name="email" class="campo" placeholder="Digite seu e-mail" required=""/>

</label>

<label class="label">
<span>Assunto</span>

<input type="text" name="assunto" class="campo" placeholder="Digite um assunto" required=""/>

</label>

<label class="naoexibir">

<span>Não preencher:</span><br>

<input type="text" name="url" value=""></p>

</label>

<label class="label">

<span>Mensagem</span>

<textarea name="mensagem" class="campo" placeholder="Deixe sua mensagem" required=""></textarea>

</label>

<label class="label">

<input type="hidden" name="acao" value="enviar">

<button type="submit" class="botao"> Enviar </button>

</label>

</form>

Vamos Adicionar o CSS


Nesta seção, usaremos algumas propriedades CSS para projetar o
nosso Formulario.
.formulario {

max-width: 480px;

overflow: hidden ;

margin: 50px auto;

background: #fff;

box-shadow: 1px 0px 1.2px 0px #e3e3e3;

border-radius: 3px;

padding: 1em;

.formulario .title {

width: 100%;
float:left;

margin-bottom:1em;

font-size:1.5em;

font-weight: 300;

text-align: center;

border-bottom: 1px #eceaea solid;

padding-bottom: 1em;

color: #8db57f;

.formulario .label {

width:100%;

float:left;

margin-bottom:10px;

.formulario .label span {

width: 100%;

float: left;

color: #393838;

margin-bottom: 3px;

.formulario .campo {

color: #393838;

font-family: 'open_sansregular';

font-size: 16px;

border-radius: 3px;

line-height: 20px;

background-color: transparent;

border: 2px solid #D2D2D2;

transition: all 0.3s;


padding: 11px;

width: 100%;

box-sizing: border-box;

outline: 0;

.formulario .campo:focus {

border: 2px solid #B3D9A5;

color: #72A65F;

.formulario textarea {

height: 130px;

line-height: 130%;

resize:vertical;

.formulario .botao {

font-family: 'open_sansregular';

width: 100%;

background:#8DB57F;

color: #ffffff;

border-radius:5px;

border:0;

cursor:pointer;

font-size:22px;

padding-top:10px;

padding-bottom:10px;

transition: all 0.3s;

margin-top:-4px;

font-weight:700;

}
.formulario .botao:hover { background:#669954; }

/*ANTI-SPAN*/

.naoexibir { display:none; }

Vamos Adicionar o PHP


Nesta seção, usaremos o arquivo enviaEmail.php para pegar os campos
digitado no formulário e enviar para o arquivo php. Depois, você pode inserir
novos campos, dependendo da sua necessidade.
O arquivo acima ao ser chamado vai apresentar o formulário HTML, ao clicar
no botão de enviar vai chamar o enviaEmail.php
Vamos adicionar o Script PHP completo
<style type="text/css">

body { background: #ffffff; }

</style>

<?php

if(isset($_POST['url']) && strlen($_POST['url']) == '0' ) {

if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){

$nome = $_POST['nome'];

$email = $_POST['email'];

$assunto = $_POST['assunto'];

$mensagem = $_POST['mensagem'];

$formulario = "Mensagem do Formulário de Contato - Seu site";

$data = date('d/m/Y H:i');

if($nome == '' || $email == '' || $assunto == '' || $mensagem == ''){

echo '<script>alert("Por favor, Preencha todos os campos corretamente !");location.href="index.html"</script>';

}else{

require_once("phpmailer/class.phpmailer.php");

// Inicia a classe PHPMailer

$mail = new PHPMailer();

$mail->CharSet = "UTF-8";

// Define os dados do servidor e tipo de conexão

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


$mail->Host = "smtp.site.com.br"; // Endereço do servidor SMTP

$mail->SMTPAuth = true;

$mail->Port = '587';

$mail->Username = 'webmaster@seusite.com.br'; // Usuário do servidor SMTP

$mail->Password = 'senha123456'; // Senha do servidor SMTP

// Define o remetente

$mail->From = $_POST['email']; // Seu e-mail

$mail->FromName = $_POST['nome']; // Seu nome

$mail->Sender = 'contato@seusite.com.br';

// Define os destinatário(s)

$mail->AddAddress('contato@seusite.com.br');

//$mail->AddCC('atendimento@seusite.com.br', 'Ciclano'); // Copia

//$mail->AddBCC('fulano@seusite.com.br.com.br', 'Fulano da Silva'); // Cópia Oculta

// Define os dados técnicos da Mensagem

$mail->IsHTML(true); // Define que o e-mail será enviado como HTML

//$mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)

// Define a mensagem (Texto e Assunto)

$mail->Subject = $formulario; // Assunto da mensagem

$mail->Body = '

<div style="border: 1px solid #f0f0f0; background:#ffffff; font-size:1em; color:#454545; margin:0px auto;
padding:1em; overflow:hidden;">

<p style="width:100%; float:left; margin-bottom:2px; color:#3c2754; font-size:1.6em;"> '.$formulario.'</p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">Nome:</strong> '.$nome.' </p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">E-mail:</strong> '.$email.' </p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">Telefone:</strong> '.$telefone.' </p>

<p style="width:100%; float:left; margin-bottom:0px; font-size:1.2em;"> <strong


style="color:#3c2754;">Mensagem:</strong> '.$mensagem.' </p>
<p style="width:100%; float:left; margin-bottom:2px; color:#3c2754; font-size:1.2em; border-top:1px #e9e9e9 solid;
padding-top:5px;"> <strong>Enviado pelo site:</strong> www.seusite.com.br <br><br> <strong>Data de
envio:</strong> '.$data.' </p>

</div>

';

$mail->AltBody = " \r\n :)";

// Define os anexos (opcional)

//$mail->AddAttachment("c:/temp/documento.pdf", "novo_nome.pdf"); // Insere um anexo

// Envia o e-mail

$enviado = $mail->Send();

// Limpa os destinatários e os anexos

$mail->ClearAllRecipients();

$mail->ClearAttachments();

// Exibe uma mensagem de resultado

if ($enviado) {

echo '

<div style="max-width:320px; padding:50px; border:3px solid #3c2754; color:#3c2754; font-family: tahoma;


background:#f7f7f7; text-align:center; font-weight:800; margin:180px auto;">

<p style="font-size:1.3em;">Obrigado!</p>

<p style="font-size:1.1em;"> Mensagem enviada com sucesso !</p>

</div>

';

echo '<meta HTTP-EQUIV="Refresh" CONTENT="2;URL=index.html">';

} else {

echo "Não foi possível enviar o e-mail.";

echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;

}//If Verifica Campos em Brancos

}//Fecha Condição se alguém Clicar no botão

}//Fecha verifica se é url vazia


?>

Explicando o script php


Exemplo regra básica. fique atendo aos campos name=”nome do campo”, ou
seja os campos que temos no formulário tem que ser o mesmo no arquivo
php ok ?
veja o exemplo abaixo no formulário html
no formulário html temos quatro campos para preencher.
nome, email, assunto e mensagem.
<input type="text" name="nome" class="campo" placeholder="Digite seu nome" required=""/>

<input type="text" name="email" class="campo" placeholder="Digite seu email" required=""/>

<input type="text" name="assunto" class="campo" placeholder="Digite o Assunto" required=""/>

<textarea name="mensagem" class="campo" placeholder="Deixe sua mensagem" required=""></textarea>

No arquivo PHP também temos que ter quatro campos com o mesmo nome
no input name=””.
Ou seja as variáveis tem que ter o mesmo nome.

$nome, $email, $assunto e $mensagem.


veja o exemplo abaixo no arquivo enviaEmail.php
$nome = $_POST['nome'];

$email = $_POST['email'];

$assunto = $_POST['assunto'];

$mensagem = $_POST['mensagem'];

Agora veja se você quiser inserir MAIS UM CAMPO com nome de TELEFONE.
Novo campo TELEFONE html
<input type="text" name="nome" class="campo" placeholder="Digite seu nome" required=""/>

<input type="text" name="email" class="campo" placeholder="Digite seu email" required=""/>

<input type="text" name="telefone" class="campo" placeholder="Digite seu Telefone" required=""/>

<input type="text" name="assunto" class="campo" placeholder="Digite o Assunto" required=""/>

<textarea name="mensagem" class="campo" placeholder="Deixe sua mensagem" required=""></textarea>

Novo campo TELEFONE no arquivo php


$nome = $_POST['nome'];

$email = $_POST['email'];

$telefone = $_POST['telefone'];

$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

Nesta linha de condição if e else para verificar se os campos estão vazios


também você vai ter que inserir o NOVO CAMPO TELEFONE.
veja o exemplo a seguir
if($nome == '' || $email == '' || $telefone == '' || $assunto == '' || $mensagem == ''){

echo '<script>alert("Por favor, Preencha todos os campos corretamente !");location.href="index.html"</script>';

}else{

Além disso você também que inserir na mensagem de TEXTO e ASSUNTO que
vai aparecer dentro do email

Define a mensagem (Texto e Assunto)


// Define a mensagem (Texto e Assunto)

$mail->Subject = $formulario; // Assunto da mensagem

$mail->Body = '

<div style="border: 1px solid #f0f0f0; background:#ffffff; font-size:1em; color:#454545; margin:0px auto;
padding:1em; overflow:hidden;">

<p style="width:100%; float:left; margin-bottom:2px; color:#3c2754; font-size:1.6em;"> '.$formulario.'</p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">Nome:</strong> '.$nome.' </p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">E-mail:</strong> '.$email.' </p>

<p style="width:100%; float:left; margin-bottom:1px; font-size:1.2em;"> <strong


style="color:#3c2754;">Assunto:</strong> '.$assunto.' </p>

<p style="width:100%; float:left; margin-bottom:0px; font-size:1.2em;"> <strong


style="color:#3c2754;">Mensagem:</strong> '.$mensagem.' </p>

<p style="width:100%; float:left; margin-bottom:2px; color:#3c2754; font-size:1.2em; border-top:1px #e9e9e9 solid;


padding-top:5px;"> <strong>Enviado pelo site:</strong> www.seusite.com.br <br><br> <strong>Data de
envio:</strong> '.$data.' </p>

</div>

';

Define os dados do servidor e tipo de conexão


fique tranquilo esta parte você pode consultar a sua hospedagem para saber
qual as configurações.

A pergunta é com quem você esta hospedado:


1. Rapid Cloud
2. KingHost
3. HostGator
4. Locaweb
5. Hostnet
NOTA: Na verdade nem precisa pesquisar. assim que você criar um
email: webmaster@seusite.com.br
sua caixa de e-mail webmaster vai ter as configurações
como porta e smpt passo a passo.
$mail->IsSMTP(); // Define que a mensagem será SMTP

$mail->Host = "smtp.site.com.br"; // Endereço do servidor SMTP

$mail->SMTPAuth = true;

$mail->Port = '587';

$mail->Username = 'webmaster@seusite.com.br'; // Usuário do servidor SMTP

$mail->Password = 'senha123456'; // Senha do servidor SMTP

// Define o remetente

$mail->From = $_POST['email']; // Seu e-mail

$mail->FromName = $_POST['nome']; // Seu nome

$mail->Sender = 'contato@seusite.com.br';

// Define os destinatário(s)

$mail->AddAddress('contato@seusite.com.br');

Importante!

você vai ter que botar o smtp


$mail->Host = "smtp.site.com.br"; // Endereço do servidor SMTP

Porta
$mail->Port = '587';

E o e-mail de autenticação

crie uma email chamado webmaster@nomedoseusite.com.br

e crie uma senha. veja o exemplo abaixo.

$mail->Username = 'webmaster@loopnerd.com.br'; // Usuário do servidor SMTP

$mail->Password = 'senha123456'; // Senha do servidor SMTP


Define os destinatário

ou seja vai enviar para onde contato

// Define o remetente

$mail->From = $_POST['email']; // Seu e-mail

$mail->FromName = $_POST['nome']; // Seu nome

$mail->Sender = 'contato@seusite.com.br';

// Define os destinatário(s)

$mail->AddAddress('contato@seusite.com.br');

posso enviar para outro email como: Gmail, hotmail, yahoo etc…
SIM pode veja.

// Define o remetente

$mail->From = $_POST['email']; // Seu e-mail

$mail->FromName = $_POST['nome']; // Seu nome

$mail->Sender = 'contato@seusite.com.br';

// Define os destinatário(s)

$mail->AddAddress('loopnerd@gmail.com');

PHPMailer: Criando um formulário em PHP autenticado


Porque devo utilizar um formulário em PHPMailer?
Um formulário de contato em seu site facilita a comunicação de seus clientes e
pessoas que têm interesse em seu negócio. No caso do PHPMailer, o envio é
feito de forma autenticada.
Isto é, você utiliza o servidor SMTP do seu domínio para enviar as mensagens.
De um modo não autenticado você normalmente faz o envio através do
próprio servidor web.

Você pode conferir a documentação completa no


endereço https://github.com/PHPMailer/PHPMailer.
Como utilizar essa classe de envio PHPMailer?
a classe de envio PHPMailer esta incluida no arquivo enviaEmail.php, dentro da
pasta phpmailer
require_once("phpmailer/class.phpmailer.php");
Para conseguir enviar emails pelo seu site via autenticação SMTP será
necessário fazer uso da classe. Portanto, faça o download da versão mais
recente pelo link informado acima ou então faça o download da versão

Mensagem de sucesso
se todos as campos forem todos preenchidos vai aparecer uma mensagem de
sucesso.

veja no código abaixo.

// Exibe uma mensagem de resultado

if ($enviado) {

echo '

<div style="max-width:320px; padding:50px; border:3px solid #3c2754; color:#3c2754; font-family: tahoma;


background:#f7f7f7; text-align:center; font-weight:800; margin:180px auto;">

<p style="font-size:1.3em;">Obrigado!</p>

<p style="font-size:1.1em;"> Mensagem enviada com sucesso !</p>

</div>

';

echo '<meta HTTP-EQUIV="Refresh" CONTENT="2;URL=index.html">';

} else {

echo "Não foi possível enviar o e-mail.";

echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;

Reparem que ele dá um echo e volta para index.html


echo '<meta HTTP-EQUIV="Refresh" CONTENT="2;URL=index.html">';

em outros casos você também pode voltar para contato.html

echo '<meta HTTP-EQUIV="Refresh" CONTENT="2;URL=contato.html">';

ou seja se os campos forem todos preenchidos com sucesso, você também


pode redirecionar para uma página de Obrigado com design BONITO
estilizado com CSS.

veja o exemplo abaixo.


// Exibe uma mensagem de resultado
if ($enviado) {

echo '<meta HTTP-EQUIV="Refresh" CONTENT="2;URL=obrigado.html">';

} else {

echo "Não foi possível enviar o e-mail.";

echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;

Caso você tenha dificuldades de como fazer um


formulário de envio de e-mail em PHP
Deixe um comentário abaixo para eu te ajudar.
Combinando as Três seções acima Html, Css e PHP temos o seguinte
Resultado !
Veja o Resultado baixo
Baixar Código Veja Funcionando
Publicado por: loopnerd

772 Visualizações
Tags Formulários Html e Css Prontos,PHP

Deixe um comentário
O seu endereço de e-mail não será publicado.Campos obrigatórios são
marcados com*
Comentário *
Nome *
E-mail *
Site

Salvar meus dados neste navegador para a próxima vez que eu comentar.
Artigos Relacionados

Tela De Login Pronta HTML CSS


Como Criar Um Formulário Em Html E Css

Formulário De Login Label Animado


Formulário De Contato Html Pronto
Menu
 Início
 Web
 Sobre
 Contato
Códigos Prontos
 Html
 Css
 Jquery
 WordPress
Templates
 Templates Html
Loop Nerd - 2021, todos os direitos reservados.
Desenvolvido por: loopnerd.com.br

Você também pode gostar