Aplicações PHP enviam emails usando Simple Mail Transfer Protocol (SMTP) através da função nativa mail() do PHP ou bibliotecas dedicadas como PHPMailer para recursos aprimorados e confiabilidade.
Função Nativa mail() do PHP
Sintaxe básica: mail(para, assunto, mensagem, headers, parametros)
- Limitações: Sem autenticação SMTP nativa, tratamento de erro ruim, suporte difícil a anexos
- Configuração: Exige sendmail/postfix no Linux; relay SMTP no Windows
- Headers: Deve construir manualmente headers MIME para HTML, anexos, encoding
Biblioteca PHPMailer (Recomendada)
Biblioteca padrão da indústria fornecendo:
- Autenticação SMTP (LOGIN, PLAIN, CRAM-MD5, XOAUTH2)
- Emails multipart HTML e texto plano
- Manipulação de anexos com encoding
- Imagens embutidas para emails HTML
- Tratamento de erro abrangente e debugging
- Suporte a assinatura DKIM
Configuração de Servidor SMTP
| Provedor | Host | Porta | Criptografia |
| Gmail | smtp.gmail.com | 587 | TLS |
| Outlook/Office365 | smtp.office365.com | 587 | TLS |
| Yahoo | smtp.mail.yahoo.com | 465 | SSL |
| Personalizado | Seu host SMTP | 25/465/587 | TLS/SSL/Nenhum |
Métodos de Autenticação
- Usuário/Senha: Padrão (use App Passwords para contas 2FA)
- OAuth2/XOAUTH2: Moderno, seguro (Gmail, Microsoft, Yahoo)
- Baseado em Certificado: Ambientes enterprise
Boas Práticas
- Use PHPMailer ou Symfony Mailer em vez de mail() nativo
- Armazene credenciais em variáveis de ambiente, nunca no código
- Implemente rate limiting e tratamento de bounce
- Configure SPF, DKIM, DMARC adequados para reputação do domínio
- Teste com Mailtrap/Ethereal Email antes de produção