Enviando e-mail via servidor SMTP do Gmail no Laravel
Você quer usar o servidor SMTP do Gmail para enviar e-mails no Laravel? Às vezes, seu servidor não envia e-mails devido a suas limitações ou configurações incorretas. Em tais cenários, você pode usar o servidor SMTP para enviar emails. Neste artigo, discutimos como enviar e-mail usando o servidor SMTP do Gmail no Laravel.
Usando o servidor SMTP, seus e-mails não irão para a pasta de spam. Em geral, ele será tratado como um e-mail genuíno e vai para a caixa de entrada do usuário.
Outro benefício de usar o servidor SMTP é que você também pode enviar e-mails de seu servidor local. Será útil testar a funcionalidade de e-mail no próprio servidor local.
Configuração do servidor SMTP do Gmail no Laravel
O Laravel usa um config/mail.php
arquivo para armazenar os detalhes relacionados aos provedores de e-mail. Este arquivo contém configurações como MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, etc. O usuário deve fornecer esta informação que será utilizada pelo Laravel e enviar seus emails.
Para adicionar essas informações, você não precisa editar config / mail.php. Em vez disso, você deve armazenar esses detalhes no .env
arquivo.
Abra o .env
arquivo que está localizado no diretório raiz e você encontrará a seguir o código relacionado às configurações de e-mail.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Edite os detalhes acima como segue.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Aqui, eu defino o driver como smtp, host para Gmail como smtp.googlemail.com, porta SMTP para Gmail como 465 e método de criptografia como ssl. Certifique-se de substituir os marcadores GMAIL_USERNAME, GMAIL_PASSWORD pelo seu nome de usuário e senha reais do Gmail.
Para usar o servidor 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 ‘Conta’, 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.
Código para enviar e-mail no Laravel
Nesta fase, você concluiu todas as configurações básicas. Agora, você precisa escrever um código do Laravel que enviará um e-mail.
Para este tutorial, vou usar uma classe ‘Mail’ para escrever código. O usuário também pode escrever o código usando o Laravel Mailable. Não fará nenhuma diferença. Em ambos os casos, o Laravel usa o servidor SMTP do Gmail em segundo plano.
Quando você usa a classe ‘Mail’, seu código será semelhante ao escrito abaixo.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
No código acima, estou usando a visão ’emails.mail’. Isso significa que você deve criar uma pasta e um arquivo como resources->views->emails->mail.blade.php
.
Você mail.blade.php
conterá o código a seguir.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
É isso! Agora, em segundo plano, o Laravel usará automaticamente o servidor SMTP do Gmail e enviará seus e-mails.
Artigos relacionados
- Teste de Email do Laravel: Mailtrap vs. Outras Opções
- Como registrar uma consulta no Laravel
- Como instalar e usar o CKEditor no Laravel