✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer

30

Quer enviar seus e-mails usando o servidor SMTP do Gmail? Quando você usa o servidor SMTP para seus e-mails, há uma grande chance de seus e-mails irem para a caixa de entrada do usuário e não para o spam. O servidor SMTP impede que seus e-mails sejam marcados como spam. Neste artigo, estudamos como enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer.

Como proprietário de um site, você sempre deseja que seu e-mail vá direto para a caixa de entrada do usuário e não para o spam ou lixo eletrônico. Isso aumenta a probabilidade de o usuário ler seu e-mail e realizar a ação que deseja.

Por que precisa usar o servidor SMTP?

Para um site, é normal ter um formulário que envia um e-mail para usuários ou administradores. Pode ser seu boletim informativo, formulário de contato ou processo de registro, onde você precisa enviar um e-mail como um agradecimento.

PHP fornece uma mail()função para enviar e-mails. No entanto, se o seu servidor não definir as configurações de e-mail corretamente, esse método não funcionará. Outra possibilidade é quando você envia e-mails usando o mail()método, pode acabar em spam.

Para superar essas 2 situações, você deve usar o servidor SMTP para o envio de seus e-mails.

Usando a biblioteca Swift Mailer, o usuário pode usar qualquer servidor SMTP como Gmail, Sendgrid, Mandrill ou seu próprio servidor SMTP de hospedagem para enviar os e-mails. Neste tutorial, escolho um servidor SMTP do Gmail.

Dito isso, vamos dar uma olhada em como usar a biblioteca Swift Mailer para enviar e-mails.

Instalação do Swift Mailer

Para usar a biblioteca Swift Mailer, você deve ter o PHP versão 7.2 ou superior em seu servidor. Se você estiver usando a versão mais antiga, atualize-a para a versão mais recente do PHP. A maioria dos provedores de hospedagem, como o Bluehost, atualizam a versão do PHP mediante solicitação. Você não precisa investir seu tempo para atualizar a versão.

Indo em frente, eu recomendo usar o Composer para instalar a biblioteca Swift Mailer. Abra o terminal no diretório raiz do seu projeto e execute o comando:

composer require swiftmailer/swiftmailer

Como usaremos o SMTP do Gmail, você precisa alterar algumas configurações em sua conta do Google. Faça login em sua conta do Google e clique em Conta. Quando estiver na página da Conta do Google, clique em Segurança. Role para baixo até a parte inferior e você encontrará as configurações de ‘Acesso de aplicativo menos seguro’. Defina-o como ON.

Enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer

Enviar e-mail usando o servidor SMTP do Gmail e a biblioteca Swift Mailer

Nesta fase, você está pronto com a biblioteca do Swift Mailer e também alterou as configurações da conta do Gmail. Agora, você está pronto para ir em frente.

Digamos que você tenha um arquivo no sendmail.phpqual precisa escrever um código que envia e-mails. Escreva o código abaixo em seu arquivo PHP.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

No código acima, passei os valores abaixo para as configurações do servidor SMTP do Gmail.

  • Endereço do servidor SMTP do Google: smtp.googlemail.com
  • Porta SMTP do Gmail: 465
  • Criptografia: ssl

Além desses valores, você precisa alterar outros marcadores de posição, como YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD, etc.

Depois de substituir todos os valores, execute este arquivo em um navegador. Você deve receber o e-mail na caixa de entrada, não no spam.

Envie um ou vários anexos em um e-mail

Às vezes, pode ser necessário enviar anexos por e-mail. Usando o Swift Mailer, você pode enviar um ou vários anexos da seguinte forma:

$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png')); //absolute path for your attachment
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'));

Tudo que você precisa fazer é usar o attachmétodo e passar o caminho absoluto do arquivo que você precisa enviar como um anexo. Presumo que você precise enviar ‘sample.png’ e ‘sample-ebook.pdf’ como anexos.

Portanto, nosso código final é o seguinte.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png'))
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'))
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

É tudo sobre como enviar e-mail por meio da biblioteca do Swift Mailer. Você também pode usar o Symfony Swift Mailer para enviar mensagens através de alguns servidores SMTP como Mailgun, Mandrill, etc. Gostaria de ouvir sua opinião e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação