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