Aprenda a enviar e-mails no PHP de forma eficiente

Veja como enviar e-mails no PHP utilizando a função mail() e outras alternativas mais seguras, como PHPMailer.

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.

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.
Foto de Rafael Nogueira
Contribuições de
Rafael Nogueira

Especialista em desenvolvimento backend com PHP para aplicações escaláveis.

Mais sobre o autor
Compartilhe este tutorial: Como enviar e-mail com PHP?

Compartilhe este tutorial

Continue aprendendo:

Como definir um limite de tamanho para upload de arquivos?

Veja como definir e controlar o tamanho máximo de arquivos enviados por usuários no PHP para garantir segurança e desempenho.

Tutorial anterior

Como usar a biblioteca PHPMailer para enviar e-mails?

Veja como configurar e utilizar PHPMailer para enviar e-mails no PHP de maneira segura e confiável.

Próximo tutorial