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ê utilizar 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.
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.
Depois de ter baixado, insira os arquivos PHPMailerAutoload.php, class.phpmailer.php e class.smtp.php em alguma pasta do seu FTP.
Neste exemplo vamos utilizar uma pasta chamada autenvio.
Crie um novo arquivo no mesmo nível do diretório onde colocou os arquivos da classe. O nome do arquivo fica a sua escolha, neste exemplo será utilizado o enviar.php.
O arquivo deve conter o código abaixo e você deve fazer as devidas alterações para que o mesmo funcione:
Linha 3 – require_once(“autenvio/PHPMailerAutoload.php”): Defina o caminho correto do arquivo class.phpmailer.php Linha 9 – $mail→Host = “smtp.seudominio.com.br”: Defina corretamente o seu host de envio SMTP Linha 14 – $mail→Username = ‘conta-de-email@seudominio.com.br’: Conta que fará o envio das mensagens (deve ser uma conta existente e ativa no seu domínio) Linha 15 – $mail→Password = ‘senha’: Defina a senha da sua conta de email que fará o envio da mensagem Linha 18 – $mail→Sender = “conta-de-email@seudominio.com.br”: Conta que fará o envio das mensagens (deve ser uma conta existente e ativa no seu domínio) Linha 23 – $mail→AddAddress(‘recebe1@dominio.com.br’): Defina a conta que receberá as mensagens
<?php
// Adiciona o arquivo class.phpmailer.php - você deve especificar corretamente o caminho da pasta com o este arquivo.
require_once("autenvio/PHPMailerAutoload.php");
// Inicia a classe PHPMailer
$mail=newPHPMailer();
// DEFINIÇÃO DOS DADOS DE AUTENTICAÇÃO - Você deve auterar conforme o seu domínio!
$mail->IsSMTP();// Define que a mensagem será SMTP
$mail->Host="smtp.seudominio.com.br";// Seu endereço de host SMTP
$mail->SMTPAuth=true;// Define que será utilizada a autenticação - Mantenha o valor "true"
$mail->Port=587;// Porta de comunicação SMTP - Mantenha o valor "587"
$mail->SMTPSecure=false;// Define se é utilizado SSL/TLS - Mantenha o valor "false"
$mail->SMTPAutoTLS=false;// Define se, por padrão, será utilizado TLS - Mantenha o valor "false"
$mail->Username='conta-de-email@seudominio.com.br';// Conta de email existente e ativa em seu domínio
$mail->Password='********';// Senha da sua conta de email
// DADOS DO REMETENTE
$mail->Sender="conta-de-email@seudominio.com.br";// Conta de email existente e ativa em seu domínio
$mail->From="conta-de-email@seudominio.com.br";// Sua conta de email que será remetente da mensagem
$mail->FromName="Form do site";// Nome da conta de email
// DADOS DO DESTINATÁRIO
$mail->AddAddress('recebe1@dominio.com.br','Nome - Recebe1');// Define qual conta de email receberá a mensagem
//$mail->AddAddress('recebe2@dominio.com.br'); // Define qual conta de email receberá a mensagem
//$mail->AddCC('copia@dominio.net'); // Define qual conta de email receberá uma cópia
//$mail->AddBCC('copiaoculta@dominio.info'); // Define qual conta de email receberá uma cópia oculta
// Definição de HTML/codificação
$mail->IsHTML(true);// Define que o e-mail será enviado como HTML
$mail->CharSet='utf-8';// Charset da mensagem (opcional)
// DEFINIÇÃO DA MENSAGEM
$mail->Subject ="Formulário de Contato";// Assunto da mensagem
$mail->Body.=" Nome: ".$_POST['nome']."<br>";// Texto da mensagem
$mail->Body.=" E-mail: ".$_POST['email']."<br>";// Texto da mensagem
$mail->Body.=" Assunto: ".$_POST['assunto']."<br>";// Texto da mensagem
$mail->Body.=" Mensagem: ".nl2br($_POST['mensagem'])."<br>";// Texto da mensagem
// ENVIO DO EMAIL
$enviado=$mail->Send();
// Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
// Exibe uma mensagem de resultado do envio (sucesso/erro)
if($enviado){
echo"E-mail enviado com sucesso!";
}else{
echo"Não foi possível enviar o e-mail.";
echo"<b>Detalhes do erro:</b> ".$mail->ErrorInfo;
}
Crie um novo arquivo e o insira dentro do mesmo diretório onde colocou o arquivo acima o seguinte conteúdo – ou, se preferir, faço o download aqui: Baixar aquivo form.php.
Linha 20 – method=”POST” action=”envia.php”: Você deve especificar corretamente o nome do arquivo criado no passo anterior.
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"content="IE=edge">
<meta name="viewport"content="width=device-width, initial-scale=1">
<title>Formulário PHPMailer</title>
<!--Layout-->
<link rel="stylesheet"href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<!--JavaScript-->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<br>
<form class="form-horizontal"method="POST"action="envia.php"id="contato"enctype="multipart/form-data">
<fieldset>
<!--Título doformulário-->
<legend>Formulário PHP-PHPMailer</legend>
<!--Campo:Nome-->
<div class="form-group">
<label class="col-md-4 control-label"for="nome">Nome</label>
<div class="col-md-4">
<input id="nome"name="nome"placeholder="Informe seu nome"class="form-control input-md"required=""type="text">
</div>
</div>
<!--Campo:Email-->
<div class="form-group">
<label class="col-md-4 control-label"for="nome">Email</label>
<div class="col-md-4">
<input id="email"name="email"placeholder="Informe seu email"class="form-control input-md"required=""type="text">
</div>
</div>
<!--Campo:Assunto-->
<div class="form-group">
<label class="col-md-4 control-label"for="nome">Assunto</label>
<div class="col-md-4">
<input id="assunto"name="assunto"placeholder="Informe o assunto da mensagem"class="form-control input-md"required=""type="text">
</div>
</div>
<!--Campo:Mensagem-->
<div class="form-group">
<label class="col-md-4 control-label"for="mensagem">Mensagem</label>
<div class="col-md-4">
<textarea class="form-control"id="mensagem"name="mensagem"></textarea>
</div>
</div>
<!--BotãoEnviar-->
<center>
<div class="form-group">
<label class="col-md-4 control-label"for="submit"></label>
<div class="col-md-4">
<button type="submit"class="btn btn-inverse">Enviar</button>
</div>
</div>
</fieldset>
</form>
</div>
</body>
</html>
Pronto! Agora você conseguirá enviar emails pelo formulário de contato do seu site de forma autenticada.