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.
