Jan 28, 2026
Bruno S.
7min Ler
A comunicação por e-mail é essencial para qualquer site. Ela está por trás de tarefas como redefinição de senha, envio de formulários e atendimento ao cliente. Nesse sentido, a função mail() do PHP até consegue enviar mensagens simples, mas muitas vezes falha na entrega (principalmente na caixa de entrada) e não oferece recursos que empresas costumam precisar.
O PHPMailer resolve essas limitações ao permitir envio com SMTP autenticado, criptografia segura, formatação em HTML e suporte a anexos. Assim, seus e-mails ficam mais profissionais e têm muito mais chance de chegar ao destino.
Para aproveitar tudo o que a biblioteca oferece, vale entender como usar PHPMailer para:
PHPMailer é uma biblioteca PHP que oferece uma maneira simples de enviar e-mails diretamente do seu servidor web . Ao contrário da função básica mail() do PHP, ela suporta recursos avançados como:
Essas funcionalidades fazem do PHPMailer a escolha preferida dos desenvolvedores que precisam de um gerenciamento de e-mails seguro e profissional em seus aplicativos.
Sim, o PHPMailer é melhor que a função mail() na maioria dos casos de uso. Veja só o porquê:
Se você estiver criando algo além de um script simples, o PHPMailer oferece muito mais controle e consistência do que a função mail().
Siga estes passos gerais para enviar emails com o PHPMailer:
Eis um exemplo simples:
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// Configuração SMTP
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'seu@email.com';
$mail->Password = 'senha';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
// Configurações do e-mail
$mail->setFrom('seu@email.com', 'Seu nome');
$mail->addAddress('destinatario@dominio.com');
$mail->Subject = 'E-mail de teste';
$mail->Body = 'Este é um e-mail de teste enviado com PHPMailer.';
$mail->send();
echo 'Mensagem enviada com sucesso';
} catch (Exception $e) {
echo "Erro: {$mail->ErrorInfo}";
}
A maneira mais fácil de instalar o PHPMailer é com o Composer , o gerenciador de dependências do PHP. Execute este comando no diretório raiz do seu projeto:
composer require phpmailer/phpmailer
Após a instalação, você encontrará o PHPMailer dentro da pasta vendor/ do seu projeto:
/seu-projeto
/vendor
/phpmailer
/phpmailer Para usar a biblioteca, carregue o autoloader do Composer no topo do seu script PHP:
require 'vendor/autoload.php';
Se você não usa Composer, também dá para baixar o PHPMailer pelo GitHub. Nesse caso, coloque a pasta do PHPMailer dentro do seu projeto e inclua os arquivos manualmente:
require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php'; require 'PHPMailer/src/Exception.php';
Para iniciantes, o Composer é a melhor opção, já que ele cuida das dependências e facilita atualizações.
O PHPMailer oferece diversos métodos e propriedades para criar e-mails profissionais. Aqui estão os mais importantes, juntamente com exemplos curtos que você pode reutilizar:
$mail->setFrom('no-reply@dominio.com', 'Nome do site');$mail->addAddress('usuario@exemplo.com', 'João Silva');
$mail->addAddress('admin@exemplo.com'); // vários destinatários$mail->addReplyTo('suporte@dominio.com', 'Equipe de suporte');$mail->Subject = 'Confirmação do pedido';
$mail->Body = '<h1>Obrigado!</h1><p>Seu pedido foi recebido.</p>';
$mail->AltBody = 'Obrigado! Seu pedido foi recebido.';
$mail->addAttachment('/caminho/para/fatura.pdf', 'Fatura.pdf');Esses componentes básicos oferecem controle total sobre a aparência e o funcionamento do seu e-mail, tornando-o mais confiável do que a função básica mail() do PHP.
A maioria dos provedores de hospedagem, incluindo a Hostinger, permite que você envie e-mails usando seus servidores SMTP . Este é o método recomendado, pois melhora a entregabilidade e reduz o risco de seus e-mails serem sinalizados como spam.
Para usar o SMTP da Hostinger com o PHPMailer, você precisará destas informações:
Aqui está um exemplo de configuração:
$mail->isSMTP(); $mail->Host = 'smtp.hostinger.com'; $mail->SMTPAuth = true; $mail->Username = 'usuario@seudominio.com'; $mail->Password = 'senha'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // ou ENCRYPTION_SMTPS para porta 465 $mail->Port = 587;
🔑 Dicas para iniciantes :
Depois de configurado, o PHPMailer vai usar os servidores da Hostinger para enviar seus e-mails com mais segurança e confiabilidade.
O PHPMailer é frequentemente usado para formulários de contato. Você precisará de um formulário HTML na página e um manipulador PHP que utilize o PHPMailer para enviar a mensagem.
Passo 1. Crie um formulário HTML simples
Este formulário coletará o nome, o e-mail e a mensagem do visitante. Salve o arquivo como index.html ou insira-o em sua página web:
<form method="POST" action="/contact.php"> <label for="name">Nome</label> <input id="name" name="name" type="text" required> <label for="email">E-mail</label> <input id="email" name="email" type="email" required> <label for="message">Mensagem</label> <textarea id="message" name="message" rows="6" required></textarea> <button type="submit">Enviar</button> </form>
Passo 2. Processe o envio com PHPMailer
Agora que o formulário está pronto, crie um script PHP (contact.php) para processar o envio e enviá-lo via PHPMailer. Este script recebe os dados do formulário, os higieniza e os envia para o seu endereço de e-mail:
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require 'vendor/autoload.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Validação e sanitização básica
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$message = trim($_POST['message'] ?? '');
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
exit('E-mail inválido.');
}
// Escapa o conteúdo do usuário antes de inserir no HTML
$safeName = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
$safeEmail = htmlspecialchars($email, ENT_QUOTES, 'UTF-8');
$safeMessage = nl2br(htmlspecialchars($message, ENT_QUOTES, 'UTF-8'));
$mail = new PHPMailer(true);
try {
// SMTP (Hostinger)
$mail->isSMTP();
$mail->Host = 'smtp.hostinger.com';
$mail->SMTPAuth = true;
$mail->Username = 'seu@seudominio.com';
$mail->Password = 'senha-da-conta-de-email';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // 587
$mail->Port = 587;
// Conteúdo do e-mail
$mail->setFrom('seu@seudominio.com', 'Contato do site');
$mail->addAddress('seu@seudominio.com', 'Caixa de entrada');
// Responder vai para o visitante
$mail->addReplyTo($email, $name);
$mail->Subject = 'Nova mensagem do formulário de contato';
$mail->isHTML(true);
$mail->Body = "<p><strong>Nome:</strong> {$safeName}</p>
<p><strong>E-mail:</strong> {$safeEmail}</p>
<p><strong>Mensagem:</strong><br>{$safeMessage}</p>";
$mail->AltBody = "Nome: {$name}nE-mail: {$email}nMensagem:n{$message}";
// Upload de arquivo (opcional)
// if (!empty($_FILES['attachment']['tmp_name'])) {
// $mail->addAttachment($_FILES['attachment']['tmp_name'], $_FILES['attachment']['name']);
// }
$mail->send();
echo 'Mensagem enviada com sucesso.';
} catch (Exception $e) {
echo 'Erro: ' . $mail->ErrorInfo;
}
}Dicas úteis:
O PHPMailer costuma mostrar mensagens de erro bem detalhadas. Abaixo estão algumas das mais comuns e o que fazer em cada caso.
Esse erro geralmente indica que o endereço do servidor SMTP ou a porta estão incorretos. As causas mais comuns são:
👉 Se você não tiver certeza, confirme com o provedor quais são as configurações SMTP corretas e se as portas estão liberadas na sua rede/servidor.
Esse erro geralmente indica uma falha na autenticação. Em outras palavras, o PHPMailer está conseguindo se comunicar com o servidor, mas seus dados de login não estão sendo aceitos. Isso pode ser devido a:
👉 Se continuar falhando, teste o login no Webmail. Se não der para entrar lá, as credenciais também não vão funcionar no PHPMailer.
Aqui, o servidor do destinatário recusou sua mensagem porque o seu domínio não tem (ou não está usando corretamente) os registros de autenticação de e-mail. Esses registros ficam no DNS e provam que você tem permissão para enviar e-mails em nome do domínio:
👉 Para corrigir, acesse o painel do seu registrador ou da hospedagem e adicione/ajuste os registros DNS necessários. A maioria dos provedores (incluindo a Hostinger) oferece guias passo a passo para configurar SPF, DKIM e DMARC.
Sem esses registros, suas mensagens têm muito mais chance de cair no spam — ou serem rejeitadas de vez.
Sim. O PHPMailer funciona com Gmail, Outlook, Yahoo e a maioria dos provedores de e-mail. Você só precisa usar as configurações SMTP corretas e o método de autenticação certo. No caso do Gmail, por exemplo, use estes dados:
Exemplo :
$mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'seunome@gmail.com'; $mail->Password = 'sua-senha-de-app'; // não é sua senha normal $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587;
Também vale ficar atento a limites do provedor. Muitos serviços gratuitos impõem um teto diário de envios via SMTP, e o Gmail costuma ter um limite baixo. Se você precisar de mais volume ou entrega mais rápida, pode ser melhor usar um serviço de e-mail dedicado no futuro. A boa notícia é que o PHPMailer se conecta a qualquer servidor SMTP, então a troca costuma ser simples.
Checklist rápido:
Com certeza. O e-mail continua sendo um dos canais mais confiáveis para enviar mensagens transacionais, campanhas de marketing e respostas de suporte ao cliente, mesmo com o surgimento de novas ferramentas de comunicação. Para empresas, uma estrutura profissional de e-mail com automação economiza tempo e melhora o relacionamento com o público.
Se você deseja ir além dos e-mails manuais, explore nosso guia de automação de email marketing para otimizar campanhas e comunicação com o cliente.
Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.