Neste artigo, vamos ensinar como você pode criar e/ou configurar o seu formulário para enviar e-mails autenticados. É muito comum contas serem usadas para envio de spam quando não usam SMTP autenticado e optam por usar apenas a função mail() sem autenticação.
Optar por SMTP autenticado é muito importante para evitar que terceiros usem seus domínios para envio de spam e consequentemente, sua conta seja suspensa por tal prática.
Não conheço PHPMAILER, o que é?
O PHPMailer é uma biblioteca de códigos para enviar e-mails com segurança e facilidade via código PHP de um servidor web. Enviar e-mails diretamente pelo código PHP requer uma familiaridade de alto nível com o protocolo padrão SMTP e problemas e vulnerabilidades relacionados à injeção de e-mail para envio de spam.
O principal benefício em usar ele ao invés da função mail(), é de fato que seus e-mails terão mais chances de serem entregues na caixa de entrada. Normalmente quando não autenticados, os e-mails facilmente são encaminhados para caixa de SPAM.
Por onde começo?
Disponibilizamos 3 arquivos aqui para você entender um pouco sobre o funcionamento. Um arquivo em html que faz o envio para as diretivas do arquivo “envio.php”, e que inclui as funções contidas em “phpmailer.php”. Segue:
form.php: Este arquivo receberá as informações e enviará para o arquivo “envio.php”
envio.php: Processa as variáveis transportadas via POST
phpmailer.php: Contém todas as orientações, incluindo informações necessárias para o envio por SMTP autenticado
Seguem códigos
form.php
form.php:
[code lang=”php”]<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html >
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Formulário de Contato</title>
<style type=”text/css”>
#contato {
font-family: Arial, Helvetica, sans-serif;
}
#contato input, #contato textarea {
font-family: Arial, Helvetica, sans-serif;
padding: 5px;
width: 250px;
}
</style>
</head>
<body>
<form action=”envia.php” method=”post” id=”contato”>
<fieldset>
<legend>Formulário de Contato</legend>
<label>Seu nome:</label><br />
<input name=”nome” type=”text” /><br /><br />
<label>Seu email:</label><br />
<input name=”email” type=”text” /><br /><br />
<label>Assunto:</label><br />
<input name=”assunto” type=”text” /><br /><br />
<label>Mensagem:</label><br />
<textarea name=”mensagem” rows=”10″></textarea><br /><br />
<input name=”submit” type=”submit” value=”Enviar” style=”width: auto;” />
</fieldset>
</form>
</body>
</html>[/code]
envio.php
[code lang=”php”]<?php
include_once(‘phpmailer.php’); //Chama o arquivo phpmailer.php com as funções para realizar o envio.
//#########################################
// Recebe as informações do formulário
//#########################################
$nome = $_POST[‘nome’];
$email = $_POST[’email’];
$assunto = $_POST[‘assunto’];
$mensagem = $_POST[‘mensagem’];
//#########################################
// Dados da conta de e-mail que fará o envio
//#########################################
$smtp = new Smtp(“localhost”); //Endereço do SMTP, geralmente localhost.
$smtp->user = “[email protected]”; //Conta de email
$smtp->pass = “suasenha”; //Senha da Conta de e-mail.
$smtp->debug = false; //Somente para usuários avançados que desejam o log do envio para testes.
//#########################################
// Envio do formulário
//#########################################
$to = “[email protected]”; //Informe aqui o e-mail que deve receber a mensagem do formulário.
$from = $email;
$subject = “Contato – ” . $assunto;
$msg = $mensagem;
if (isset($_POST[‘submit’])) {
if($nome && $email && $assunto && $mensagem) {
if($smtp->Send($to, $from, $subject, $msg)){
echo “<script>alert(‘Contato enviado!’);</script>”;
echo “<script>window.location = ‘index.php’;</script>”; //Altere aqui para o endereço de sua página.
exit;
}
}
else {
echo “<script>alert(‘Preencha todos os campos!’);</script>”;
echo “<script>window.location = ‘formulario.html’;</script>”; //Altere aqui para o endereço de seu formulário
exit;
}
}
?>[/code]
phpmailer.php
[code lang=”php”]<?php
class Smtp{
var $conn;
var $user;
var $pass;
var $debug = false;
function Smtp($host){
$this->conn = fsockopen($host, 25, $errno, $errstr, 30);
$this->Put(“EHLO $host”);
}
function Auth(){
$this->Put(“AUTH LOGIN”);
$this->Put(base64_encode($this->user));
$this->Put(base64_encode($this->pass));
}
function Send($to, $from, $subject, $msg){
$this->Auth();
$this->Put(“MAIL FROM: ” . $from);
$this->Put(“RCPT TO: ” . $to);
$this->Put(“DATA”);
$this->Put($this->toHeader($to, $from, $subject));
$this->Put(“rn”);
$this->Put($msg);
$this->Put(“.”);
$this->Close();
if(isset($this->conn)){
return true;
}else{
return false;
}
}
function Put($value){
return fputs($this->conn, $value . “rn”);
}
function toHeader($to, $from, $subject){
$header = “Message-Id: <“. date(‘YmdHis’).”.”. md5(microtime()).”.”. strtoupper($from) .”> rn”;
$header .= “From: <” . $from . “> rn”;
$header .= “To: <“.$to.”> rn”;
$header .= “Subject: “.$subject.” rn”;
$header .= “Date: “. date(‘D, d M Y H:i:s O’) .” rn”;
$header .= “X-MSMail-Priority: High rn”;
return $header;
}
function Close(){
$this->Put(“QUIT”);
if($this->debug == true){
while (!feof ($this->conn)) {
echo fgets($this->conn) . “<br>n”;
}
}
return fclose($this->conn);
}
}
?>[/code]
SMTP Autenticado no WORDPRESS
Caso você use o wordpress, você poderá enviar e-mails com SMTP autenticado realizando procedimento mais simples do que o citado no exemplo acima. Faça login no seu painel do WordPress e no menu lateral encontre a opção “Plugins” em seguida selecione “Adicionar Novo“.
Na página de plugin, procure por “SMTP“. Encontre o plugin Easy WP SMTP e clique em “Instalar“. Assim que a instalação terminar clique em “Ativar Plugin“.
Com a instalação concluída, vamos até o menu lateral novamente na opção “Plugins” mas desta vez selecionamos “Plugins instalados“. Procure pelo Easy WP SMTP e selecione a opção “Settings“.
Em settings, basta informar as informações da conta de e-mail bem como porta de envio (geralmente 587) e em caso de dúvidas, poderá acionar a equipe de suporte da ServCloud.
Segue video com detalhes
Conclusão
Utilizar SMTP Autenticado é a melhor opção para manter o seu site ou blog livre de ação por parte de terceiros. Adicionalmente, com seu uso, seus e-mails serão reconhecidos como conteúdo legítimo e aceito pela maioria dos provedores de e-mail caindo os e-mails na caixa de entrada.
Sobre a ServCloud
A ServCloud é uma empresa de hospedagem de sites que oferece uma variedade de produtos na nuvem que incluem serviços de hospedagem de sites, Cloud, revenda de hospedagem, VPS e Servidores Dedicados. Não encontrou um produto que atenda sua necessidade? Entre em contato com nossa equipe que teremos o prazer em ajudá-lo(a). A ServCloud vem se destacando no mercado de hosting por oferecer um atendimento diferenciado utilizando não só os meios convencionais de atendimento como gerente de contas por whatsapp.