Enviando E-Mails (Gmail) com PHPMailer

Eu utilizei essa classe hoje pra configurar minha página de contato aqui do Blog


Eu utilizei essa classe hoje pra configurar minha página de contato aqui do Blog.

A classe PHPMailer serve para envio de e-mails através do PHP via conexão SMTP ou POP3 muito utilizado por todo o mundo. Seu método de envio é largamente recomendado e é bem melhor do que o envio do mail() ou sendmail() ambas do PHP.

Esse processo é bem simples, e nesse caso vamos configurar também o envio de resposta pra quem preencheu o formulário.

Separei em dos arquivos, mas costumo usar tudo num só arquivo, os dois arquivos serão

index.php

enviar.php

Usarei como exemplo um e-mail do Gmail, primeiramente temos de baixar a classe PHPMailer do site e descompactá-la no local onde está os arquivos criados aqui.

Agora vamos construir nosso index.php que estará nosso form(nao usei tableless nesse exemplo, nem tá completo o arquivos faltando as tags de uma página HTML).

<table border="1">
      <!--Informamos o arquivo PHP que irá processar o form e o método de envio, o POST-->
    <form action="enviar.php" method="post" enctype="multipart/form-data">
        <tr>
            <td>Nome:</td>
            <td>
                <input type="text" class="texto" name="nome" />
            </td>
        </tr>       
        <tr>
            <td>Email:</td>
            <td>
                <input type="text" class="texto" name="email" />
            </td>
        </tr>       
        <tr>
            <td>Assunto:</td>
            <td>
                <input type="text" class="texto" name="assunto" />
            </td>
        </tr>       
        <tr>
            <td>Mensagem</td>
            <td>
                <textarea name="mensagem"></textarea>
            </td>
        </tr>
        <tr>
            <td>
                <a href="index.php">Atualizar</a>
            </td>
            <td>
                <input type="submit" name="enviar" class="bottom"/>
            </td>
        </tr>   
    </form>
</table>

enviar.php

<?php
  /* se apertar em enviar dados entra no processo*/
  if(isset($_POST['enviar']))
  {
  /* extraimos o POST para criar as variaveis automaticamente pelo nome do FORM */
     extract($_POST);
  /* CASO ALGUM CAMPO ESTEJA VAZIO, aconselho não colocar mensagem por campo e sim completo por motivos de segurança */
     if(empty($nome)     ||
        empty($email)    ||
        empty($assunto)  ||
        empty($mensagem)
       )
     {
          echo 'Um ou mais campos está(ão) vazio(s).';
     }
     /* utilizando Expressão Regular, verificamos se o formato do email é válido, clique aqui pra saber mais sobre Expressões Regulares */
    
     else if(!preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/i", $email))
     {
          echo 'Informe um email válido.';
     }
     else
     {
      /* preparamos o arquivo para envio */
          $corpo = 'Nome: '.$nome.'<br />Email: '.$email.'<br />Mensagem: <br /><br />'.$mensagem;

          /* criamos uma função para chamar os métodos da Classe PHPMailer */
          function sendMail($assunto,$corpo,$remetente,$nomeRemetente,$destino,$nomeDestino){
          /* Incluimos a class, lembrando que essa classe é o arquivo baixado e está dentro da pasta PHPMailer, renomei */
          require_once('PHPMailer/class.phpmailer.php');
          /* Instanciamos a class */
          $mail = new PHPMailer(); //inicia a classe
          /* Setamos os métodos necessários para o funcionamento */
          $mail->IsSMTP();
          $mail->SMTPAuth = true;
          $mail->Host = 'smtp.gmail.com';
          $mail->Port = '587';
          $mail->SMTPSecure = "tls";
          /* digite aqui o seu email que fará a autenticação de envio */
          $mail->Username = 'SEU_EMAIL@gmail.com';
          /* coloque a senha desse email */
          $mail->Password = 'SUA_SENHA_DO_EMAIL_ACIMA';
          $mail->From = $remetente;
          $mail->FromName = utf8_decode($nomeRemetente);
          $mail->IsHTML(true);
          $mail->Subject = utf8_decode($assunto); //assunto
          $mail->Body = utf8_decode($corpo); //mensagem
          $mail->AddAddress($destino,utf8_decode($nomeDestino)); //email e nome do destino
          /* caso haja erro no envio */
          if(!$mail->Send()){

          echo 'Erro ao enviar mensagem.';
          /* caso o envio esteja correto */
          }else{
         
          echo 'Sua mensagem foi enviada com sucesso!';
         
         }
         
    }

         /* preparamos a mensagem de resposta */
          $resposta = 'Olá '.$nome.'!<br />
                      Obrigado por entrar em contato!<br />
                      Em breve responderemos.<br />
                      Atenciosamente,<br /><br />
                      SUA ASSINATURA.<br />';

        /* envia o email para você */
        sendMail($assunto,$corpo,$email,$nome,'SEU_EMAIL@gmail.com','SUA MENSAGEM');
        /* envia o email de resposta */
        sendMail('Olá '.$nome.', recebemos sua mensagem',$resposta,'SEU_EMAIL@gmail.com','SEU TITULO',$email,$nome);

      }/* else dos campos vazios e da ExReg */
  }
?>

Pronto, é isso, qualquer dúvida é só comentar


php


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo

Artigos Relacionados




Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!