PHP

Como enviar e-mails com o PHPMailer

PHPMailer é uma biblioteca para o envio de e-mails com suporte a HTML, diferentes protocolos e níveis de autenticação. Neste post veja como enviar e-mails com o PHPMailer.

É de código aberto e pode ser utilizada em plataformas sem servidor de e-mails nativo, como o Windows.

Para usarmos as classes do PHPmailer devemos baixar o seu código fonte no seu repositório oficial no Github via composer. O link é https://github.com/PHPMailer/PHPMailer.

Na página, copie o código para baixar o PHPmailer. Atualmente é “phpmailer/phpmailer”: “~6.1” e crie um arquivo JSON informando no require o código copiado:

{
 "require":{
   "phpmailer/phpmailer": "~6.1"
  }
}

Clique com o botão direito do mouse no diretório onde o arquivo JSON foi criado e selecione a opção Git Bash Here. Será aberto o console onde você precisa digitar composer update.

Será feito o download das dependências do composer criado.

Serão criados o arquivo “composer.lock” e o diretório “vendor”. Após isso crie o arquivo “index.php” para incluir o autoload do composer. Abra o arquivo “index.php” e edite da seguinte forma:

 require_once("vendor/autoload.php");
 header('Content-Type: text/html; charset=utf-8');

 use PHPMailer\PHPMailer\PHPMailer;
 use PHPMailer\PHPMailer\SMTP;
 use PHPMailer\PHPMailer\Exception;

 //Cria uma instância do PHPmailer
 $mail = new PHPMailer;

 //Tell PHPMailer to use SMTP
 $mail->isSMTP();

 /* Enable SMTP debugging
 // SMTP::DEBUG_OFF = off (for production use)
 // SMTP::DEBUG_CLIENT = client messages
 // SMTP::DEBUG_SERVER = client and server messages */
 $mail->SMTPDebug = SMTP::DEBUG_SERVER;

 //Formato do debug mostrado na tela
 $mail->Debugoutput = 'html';

 //Set the hostname of the mail server
 $mail->Host = 'meuhost.com.br';
 /* use
 // $mail->Host = gethostbyname('smtp.gmail.com');
 // if your network does not support SMTP over IPv6

 //Define o número da porta SMTP - 587 para envio SMTP TLS autenticado, também conhecido como RFC4409
 $mail->Port = 587;

 //Define o mecanismo de criptografia a ser usado - STARTTLS ou SMTPS
 $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;

 //Verifica se deve usar autenticação SMTP
 $mail->SMTPAuth = true;

 //Username to use for SMTP authentication - use full email address for gmail
 $mail->Username = 'username@gmail.com';

 //Password to use for SMTP authentication
 $mail->Password = 'yourpassword';

 //Defina de quem a mensagem deve ser enviada
 $mail->setFrom('faleconosco@meusite.com.br', 'Suporte do site');

 // Set an alternative reply-to address
 //$mail->addReplyTo('replyto@example.com', 'First Last');

 //Defina para quem a mensagem deve ser enviada
 $mail->addAddress('meuamigo@gmail.com', 'Amigão do peito');

 //Set the subject line
 $mail->Subject = 'Você precisa de ajuda?';

 /* Read an HTML message body from an external file, convert referenced images to embedded,
 //convert HTML into a basic plain-text alternative body
 $mail->msgHTML(file_get_contents('contents.html'), __DIR__);

 //Caso o leitor de e-mails não suporte HTML, somente textos
 $mail->AltBody = 'Agradecemos por entrar em contato conosco!';

 //Adiciona anexos
 //$mail->addAttachment('images/phpmailer_mini.png');

 //Envia a mensagem e verifique se há erros
 if (!$mail->send()) { //se não enviar
    echo 'Mailer Error: '. $mail->ErrorInfo;
 } else {
    echo 'Message sent!';
    //Section 2: IMAP
    //Uncomment these to save your message in the 'Sent Mail' folder.
    #if (save_mail($mail)) {
    #    echo "Message saved!";
    #}
 }
?>

Para utilizar os servidores do Gmail para o envio das mensagens, acesse https://github.com/PHPMailer/PHPMailer/tree/master/examples e selecione “gmail.phps”.

O arquivo “contents.html” é o corpo do email, no qual é possível utilizar os recursos do HTML para compor o e-mail da forma que desejar.

Ao criar o arquivo contents.html atente para não utilizar imagens localizados em outros servidores. Por exemplo, se o e-mail estiver saindo a partir do servidor de e-mails, as imagens precisam estar hospedadas no mesmo servidor. Caso estejam em outro servidor, as mensagens serão classificadas automaticamente como spams.

Da mesma forma, as URLs das imagens precisam ser seguras (https).

APRENDA A PROGRAMAR EM PHP ORIENTADO A OBJETOS E IMPULSIONE SUA CARREIRA COMO PROGRAMADOR!

O curso de PHP Orientado a Objetos apresenta o passo a passo de como estruturar um sistema do zero com PHP utilizando o padrão de desenvolvimento MVC (Model, View e Controller).

Conheça o curso online que já AJUDOU MILHARES DE PESSOAS a aprender a programar e desenvolver seus próprios projetos do ZERO. CLIQUE NA IMAGEM ABAIXO E CONFIRA!

php orientado a objetos

Link do curso: https://go.hotmart.com/A18082772K

Crie uma enquete com o PHP

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

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