Como enviar Email com PHP | Criando uma página de captura

Anderson Irias - 08/12/2020

Neste artigo vamos ver como enviar emails com PHP. Para um melhor exemplo, vamos criar uma página de captura de leads, que envia por email o nome e email cadastrados. Vamos realizar o envio de emails utilizando a classe PHPMailer. Em nossa página de captura de leads, vamos utilizar HTML, CSS e o Framework Bootstrap 4.

Envio de Email

O primeiro passo é realizar a instalação do PHPMailer. Aqui vou realizar a instalação utilizando o  Composer, que é um gerenciador de dependências para PHP. Caso não possua o Composer instalado em seu computador, veja no site oficial do Composer como realizar sua instalação. Utilize o comando abaixo em seu terminal para a instalação.

composer require phpmailer/phpmailer

Após a instalação vamos criar o arquivo sendemail.php. Adicione o código abaixo neste arquivo.

<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception;

require './vendor/autoload.php';

if (empty($_POST['nome'])) { header("Location: /newsletter.php?res=falha"); exit(); }

if (empty($_POST['email'])) { header("Location: /newsletter.php?res=falha"); exit(); }

$mail = new PHPMailer(true);

try {
$mail->isSMTP();
$mail->Host = 'smtp.meuservidor.com.br';

$mail->SMTPAuth = true; $mail->SMTPSecure = false; $mail->SMTPAutoTLS = false;

$mail->Username = 'meuemail@meuservidor.com.br';
$mail->Password = 'senhadoemail';
$mail->Port = 587;
$mail->CharSet = 'UTF-8';

$mail->setFrom('meuemail@meuservidor.com.br', 'Cadastro Newsletter'); $mail->addAddress('meuemail@meuservidor.com.br');
$mail->isHTML(true);

$mail->Subject = 'Cadastro em Newsletter IriasLab'; $mail->Body = 'Bom dia,

Cadastro na Newsletter do blog IriasLab.

Nome: ' . $_POST['nome'] . '
Email: ' . $_POST['email'] . '
';

$mail->send(); $res = 'sucesso'; } catch (Exception $e) { $res = 'falha'; }

header("Location: /newsletter.php?res=" . $res); exit();

No código acima, recebemos o nome e o email vindos do formulário da newsletter. Utilizando a função empty, realizamos a validação se o nome e email foram informados. Caso algum deles não tenha sido informado, realizamos o redirect para a o formulário, passando o valor falha no parâmetro res.

Após isso criamos o objeto mail a partir da classe PHPMailer, e incluímos toda a configuração necessária para o envio do email. Substitua as configurações pelas configurações de seu servidor de emails. Para mais detalhes sobre o PHPMailer, veja no repositório do GitHub do PHPMailer. No final do envio realizamos o redirect para o formulário passando o valor de sucesso ou falha no parâmetro res.

Página de captura.

Nossa página de captura é composta de três arquivos e uma imagem: newsletter.php, newsletter.css, bootstrap.min.css e background.jpg. Vou deixar o projeto completo em meu GitHub, onde o mesmo já está organizado. https://github.com/andersonirias/pagina-captura. Nossa página de captura ficará com a seguinte aparência.