Envio de email em PHP: Guia completo da biblioteca PHPMailer

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca PHPMailer: envio profissional de email em PHP



O envio de emails é uma das funções principais de qualquer aplicação web moderna. A função nativa do PHP mail() muitas vezes não é suficientemente flexível e segura: ela não suporta autenticação SMTP, criptografia TLS/SSL, envio de emails HTML com anexos e nem sempre funciona corretamente em hospedagens compartilhadas. A solução para esses problemas é a biblioteca PHPMailer, que se tornou o padrão de facto para envio de email em PHP.



O que é PHPMailer?

PHPMailer é uma biblioteca poderosa e fácil de usar para enviar emails a partir de scripts PHP. Ela suporta:

  • Envio através de servidor SMTP (Gmail, Yandex, Mail.ru, email corporativo);
  • Criptografia TLS e SSL;
  • Emails HTML com anexos (imagens, PDFs, documentos);
  • Codificação UTF-8 e suporte a qualquer idioma (português, chinês, etc.);
  • Texto alternativo (plain-text) para clientes de email sem suporte a HTML;
  • Assinatura DKIM e SPF para proteção contra spam;
  • Funcionamento via sendmail local ou mail() integrado como fallback.


Instalação do PHPMailer

A maneira mais simples é através do Composer. No terminal, execute o comando na raiz do seu projeto:

composer require phpmailer/phpmailer

Se o Composer não for utilizado, você pode baixar o arquivo do GitHub e incluir os arquivos manualmente:

require_once '/caminho/para/PHPMailer/src/PHPMailer.php';require_once '/caminho/para/PHPMailer/src/SMTP.php';require_once '/caminho/para/PHPMailer/src/Exception.php';


Exemplo básico de envio de email via SMTP do Gmail

Vamos considerar a configuração mínima para enviar um email através do servidor SMTP do Gmail. Atenção: para funcionar, será necessário criar uma senha de aplicativo nas configurações da sua conta Google (ou usar a opção menos segura de "acesso a aplicativos menos seguros").

<?phpuse PHPMailer\\PHPMailer\\PHPMailer;use PHPMailer\\PHPMailer\\SMTP;use PHPMailer\\PHPMailer\\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try { // Configurações do servidor $mail->SMTPDebug = SMTP::DEBUG_OFF; // Depuração (0 - desligado, 2 - detalhado) $mail->isSMTP(); // Usar SMTP $mail->Host = 'smtp.gmail.com'; // Servidor SMTP $mail->SMTPAuth = true; // Ativar autenticação $mail->Username = 'seu-email@gmail.com'; // Login SMTP $mail->Password = 'sua-senha-de-app'; // Senha SMTP (senha de aplicativo) $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL $mail->Port = 465; // Porta para SSL (587 para TLS)

// Remetente e destinatário $mail->setFrom('from@example.com', 'Nome do remetente'); $mail->addAddress('to@example.com', 'Nome do destinatário'); // Pode adicionar vários $mail->addReplyTo('reply@example.com', 'Responder');

// Anexos (opcional) $mail->addAttachment('/caminho/para/arquivo.pdf', 'Nome.pdf');

// Conteúdo do email $mail->isHTML(true); // Formato HTML $mail->Subject = 'Olá do PHPMailer!'; $mail->Body = '<b>Este é um email HTML</b> com texto em português.'; $mail->AltBody = 'Este é o texto alternativo para clientes de email sem suporte a HTML.';

$mail->send(); echo 'Email enviado com sucesso';} catch (Exception $e) { echo "Erro: {$mail->ErrorInfo}";}?>


Envio via Yandex Mail

Para o Yandex Mail, os parâmetros mudam ligeiramente. Importante: nas configurações da caixa de correio, é necessário permitir o acesso via protocolo IMAP/SMTP e criar uma senha de aplicativo (se a autenticação de dois fatores estiver ativada).

$mail                    

Recommendations