Como enviar e-mail com PHP?
O PHP permite o envio de e-mails de diferentes formas, sendo a função mail()
a mais simples. No entanto, para maior controle e segurança, o uso de bibliotecas como PHPMailer é recomendado.
Enviando e-mail com mail()
A função mail()
é a forma mais básica de enviar um e-mail no PHP:
<?php
$para = "destinatario@exemplo.com";
$assunto = "Teste de e-mail";
$mensagem = "Este é um e-mail enviado via PHP.";
$headers = "From: remetente@exemplo.com";
if (mail($para, $assunto, $mensagem, $headers)) {
echo "E-mail enviado com sucesso!";
} else {
echo "Falha ao enviar o e-mail.";
}
?>
Essa abordagem depende das configurações do servidor e pode não funcionar corretamente em alguns casos.
Enviando e-mail com PHPMailer
Para maior flexibilidade, podemos usar PHPMailer, uma biblioteca amplamente utilizada para envio de e-mails no PHP. Primeiro, instalamos via Composer:
composer require phpmailer/phpmailer
Agora, criamos um script para enviar o e-mail:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.exemplo.com';
$mail->SMTPAuth = true;
$mail->Username = 'usuario@exemplo.com';
$mail->Password = 'senha';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('remetente@exemplo.com', 'Nome do Remetente');
$mail->addAddress('destinatario@exemplo.com');
$mail->Subject = 'Assunto do E-mail';
$mail->Body = 'Este é um e-mail enviado com PHPMailer no PHP!';
$mail->send();
echo "E-mail enviado com sucesso!";
} catch (Exception $e) {
echo "Falha ao enviar e-mail: ", $mail->ErrorInfo;
}
?>
Aqui, utilizamos SMTP para um envio mais confiável.
Por que usar PHPMailer em vez da função mail() no PHP?
O envio de e-mails no PHP pode ser feito de diferentes maneiras, mas nem todas são confiáveis. A função mail()
funciona apenas se o servidor estiver corretamente configurado, enquanto PHPMailer permite o uso de SMTP, garantindo maior controle e segurança. Utilizar autenticação e conexões seguras é essencial para evitar que os e-mails sejam bloqueados ou marcados como spam.
Algumas aplicações:
- Envio de confirmações de cadastro para usuários
- Recuperação de senha via e-mail
- Notificações automáticas para clientes
- Envio de boletins informativos e newsletters
Dicas para quem está começando
- Evite usar
mail()
em produção, pois pode ser bloqueado por servidores. - Prefira PHPMailer ou SwiftMailer para maior controle sobre o envio.
- Use SMTP para garantir que os e-mails sejam entregues corretamente.
- Teste o envio de e-mails em um ambiente local com Mailtrap antes de colocar em produção.
- Certifique-se de que o domínio está configurado corretamente para evitar que os e-mails caiam no spam.

Rafael Nogueira
Especialista em desenvolvimento backend com PHP para aplicações escaláveis.
Mais sobre o autor