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

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,<br/><br/>Cadastro na Newsletter do blog IriasLab.<br/><br/>
  <b>Nome: </b>'     . $_POST['nome'] . '<br/>
  <b>Email: </b>'    . $_POST['email'] . '<br/>';

  $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.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *