O PHPMailer é uma das bibliotecas mais utilizadas para enviar e-mail em PHP, como ela você pode enviar e-mails autenticados via script PHP dentro da sua hospedagem de site garantindo mais confiabilidade do seu e-mail.
Primeiramente para utiliza-la você precisa baixa-la para o seu projeto, você pode utilizar o composer, pode clona-la pelo GIT e até mesmo baixa-la, exemplo:
composer require phpmailer/phpmailer
git clone https://github.com/PHPMailer/PHPMailer.git
https://github.com/PHPMailer/PHPMailer/archive/master.zip
Depois de baixada você deve incluí-la em seu projeto, se você estiver utilizando o autoload do composer pode pular a próxima etapa, mas se for inclui-la manualmente você pode utilizar o seguinte código:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'path/to/PHPMailer/src/Exception.php'; require 'path/to/PHPMailer/src/PHPMailer.php'; require 'path/to/PHPMailer/src/SMTP.php';
Para realizar o envio você deve criar um objeto e parametrizar com as configurações de uma conta de e-mail que você já tenha criado anteriormente em sua conta de hospedagem de site.
$mail = new PHPMailer(true);
try {
# Informa que o protocolo a ser utilizado é o SMTP
$mail->isSMTP();
# Informe o servidor SMTP
$mail->Host = 'mail.seudominio.com';
# Habilita a autenticação por SMTP
$mail->SMTPAuth = true;
# Informe o seu usuário do servidor SMTP, aqui na HOST4 é sempre o seu e-mail completo
$mail->Username = 'nome@seudominio.com.br';
# Preencha com a senha do seu e-mail
$mail->Password = '******';
# Definimos a criptografia a ser utilizada tls ou ssl
$mail->SMTPSecure = 'tls';
# Informe a porta pode ser a 587 ou a 465
$mail->Port = 587;
# Informe o e-mail remetente recomendamos que seja o mesmo e-mail da configuração do envio
$mail->setFrom('nome@seudominio.com.br', 'Nome');
# Informe o e-mail para onde o e-mail será enviado
$mail->addAddress('exemplo@gmail.com', 'Nome Exemplo');
# Você pode definir um e-mail de resposta
$mail->addReplyTo('respondaaqui@seudominio.com.br', 'Seu Nome');
# Configura o e-mail para ser enviado no formato HTML
$mail->isHTML(true);
# Configura o Assunto do e-mail
$mail->Subject = 'Assunto do E-mail';
# Aqui você escreve a mensagem que irá no corpo do e-mail
$mail->Body = 'Mensagem com tags HTML';
# Você pode definir um texto alternativo para clientes de e-mail que não suportem HTML
$mail->AltBody = 'Mensagem em texto simples';
# Código para realizar o e-mail
$mail->send();
#em caso de sucesso você pode mostrar uma mensagem ou redirecionar o fluxo para outro lugar
echo 'E-mail enviado com sucesso';
} catch (Exception $e) {
# Caso ocorra algum problema o script cairá aqui
echo "O e-mail não pode ser enviado: {$mail->ErrorInfo}";
}
Caso tenha alguma dúvida ou queira implementar mais algum recurso recomendamos a leitura da documentação em: https://github.com/PHPMailer/PHPMailer/wiki
