Como fazer um formulário de envio de e-mail em PHP
Link Efeito Reflexo com Css
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 um e-mail 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


você pode procurar alguma hospedagem ou me add que te ajudo 14996752073
It’s going to be finish of mine day, except before finish
I am rreading this fantastiic post to increase my know-how.
Olá Darlan!
Sim este formulário é para quem tem hospedagem própria.
exemplo vamos supor que seu site seja:
www.seusitedarlan.com.br,ai você vai criar um e-mail
webmaster@seusitedarlan.com.bre botar a senha que você criar.ai sim, você pode enviar para outro emails como: Gmail, hotmail, yahoo etc…
Tenho que Pagar a hospedagem para usar, o destinatario e o seu email, qual Campo preecho pra cair no meu email.