Envio de e-mail autenticado com PHP Mailer
Fazer o envio de e-mail autenticado uma hora ou outra será necessário. Seja pelo disparo de um e-mail marketing, ou até mesmo um simples contato via site.
Se você como muitos é um leitor que não perde um sequer conteúdo aqui do blog, certamente você já viu o nosso artigo de Como Enviar E-mail com PHP. Este post é um sucesso tremendo, até porque, todos nós em um momento ou outro precisamos enviar e-mail com PHP.
Vendo os comentários do post de envio de e-mail, o maior problema que os devs encontram, é funcionar o envio. Eu particularmente sofro quase sempre. O problema é que sempre precisamos de um e-mail do servidor, e as vezes alguém troca a senha desse e-mail, exclui. Vira uma baita dor de cabeça.
Contudo, vendo esse problema, decidi fazer esse post para ensinar como fazer o envio de e-mail autenticado com PHP Mailer! Com isso você pode usar praticamente qualquer e-mail, até mesmo um que não está no servidor.
Se você preferir, pode clicar aqui e baixar tudo zipado e prontinho pra você só substituir as variáveis e começar a usar.
O que é um e-mail autenticado?
Primeiro vamos explicar o que é um e-mail convencional. Um e-mail como o feito naquele post, não necessita de autenticação, por isso sempre tem que ser um e-mail do mesmo domínio. Um e-mail autenticado nada mais faz que enviar um e-mail com as credenciais do usuário. Ou seja, ele faz exatamente como se fosse uma pessoa enviando o e-mail.
O que é PHP Mailer
O PHP Mailer é uma classe PHP que facilita (e muito) o trabalho de enviar um e-mail autenticado. Nós também conseguimos autenticar um e-mail através da função mail()
do PHP. Porém fazer isso é muito chato e complicado, até porque a função não nos da nenhum suporte, nenhuma tratativa de erros. Sem contar, que é um parto para utilizar HTML, Imagens e Anexar arquivos com a função. Com a classe do PHP Mailer tudo fica mais fácil.
Mão na massa!
Instalação
Podemos instalar o PHP Mailer de duas maneiras: Composer ou baixando os arquivos.
Via Composer:
composer require phpmailer/phpmailer
Se você não sabe como usar o composer, clique aqui.
Via Download:
https://github.com/PHPMailer/PHPMailer/archive/master.zip
Configuração para o autenticar o envio do e-mail
Após efetuar a instalação/download dos arquivos partiremos para a configuração. É simples.
Se você fez a instalação via download, deverá fazer o require/include dos arquivos que servem como dependências. Se esse for seu caso, basta fazer desta forma:
Eu recomendo que você utilize o composer para fazer a instalação. Com o composer o código fica muito mais simples, mais fácil de atualizar e entender. Veja só:
Como podemos ver, utilizando o composer para instalar o PHP Mailer só precisamos chamar um único arquivo e ele é responsável por carregar as dependências necessárias.
Autenticação e envio do e-mail autenticado
Eu tentei descrever o máximo utilizando os comentários ao lado de cada função. De todo modo, caso tenha alguma dúvida, deixe um comentário que terei o prazer de lhe auxiliar!
*Bonus*
Geralmente utilizamos templates em nossos contatos, até por uma questão de estética. Podemos simplesmente colocar nosso HTML dentro do $mail->Body
que irá funcionar. O problema é que isso geralmente gera conflitos por conta das aspas. Sem contar a confusão que é utilizar HTML dentro do PHP. Eu utilizo um arquivo .html com a estrutura html+css e apenas substituo as tags. Veja como é simples:
Primeiro vamos criar nosso arquivo email-template.html
Como vemos, aqui temos toda a estrutura HTML e CSS do que será recebido em nosso e-mail. As tags, nós definimo-as entre %%, você já vai entender porque.
Aqui o que nós fazemos é simples. Primeiro pegamos o conteúdo do arquivo de template. Depois utilizamos a função str_replace
para buscar o %data% dentro do arquivo de template e substituir pelo valor real. Por último, dizemos que o corpo do e-mail é igual ao nosso template depois de atualizarmos as tags.
Como você já sabe, se restar alguma dúvida, precisar de alguma ajuda. É só deixar um comentário que eu irei lhe ajudar!