Envie e -mails em Laravel usando SMTP

Envie e -mails em Laravel usando SMTP
Enviar um email é um requisito comum para qualquer aplicativo da web. Alguns usos gerais do envio de e -mails incluem verificar o registro do usuário, obter feedback dos usuários, fornecer opções para entrar em contato com o administrador do site, etc. A estrutura do Laravel contém vários pacotes para enviar e -mails do projeto Laravel. SMTP, Mailgun, Postmark e Amazon SES são usados ​​em Laravel para enviar e -mails simples, transacionais e em massa. O Laravel tem uma biblioteca de defesa de email chamada Swiftmailer para enviar um e-mail com um modelo de e-mail. Este tutorial mostra como enviar um e -mail simples usando SMTP.

Configuração e configuração do SMTP

Abra o .Env Arquivo da pasta raiz do projeto Laravel e configure a configuração de acordo com sua conta do Gmail. Você deve ativar o “Aplicativo menos seguro”Opção da sua conta do Gmail para enviar um email usando o servidor SMTP do Gmail.

Mail_mailer = Smtp
Mail_Host = Smtp.Gmail.com
Mail_port = 465
Mail_UserName = Your_Email_Address
Mail_Password = Your_Password
Mail_Encryption = SSL

***Observação:

Você pode receber o erro de autenticação SMTP ao enviar e -mails usando o servidor de conta do SMTP Gmail. Abra o Streambuffer.php arquivo do seguinte local.

/var/www/html/laravelpro/fornecedor/swiftmailer/swiftmailer/
lib/classes/swift/transport/streambuffer.php

Encontre e substitua a linha 259 com a linha a seguir para autenticar o servidor SMTP do Gmail.

$ options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,
'allow_self_signed' => true);

Enviando e -mails usando SMTP

Execute as etapas a seguir para enviar email usando o formulário de contato criando um controlador, visualização e classe de e -mail.

Passos:

Execute o seguinte comando do terminal para criar EmailController Para mostrar o formulário de contato e enviar um email usando a aula de correio do Laravel.

$ php artesan make: controller emailcontroller

Execute o seguinte comando para criar uma classe de correio nomeada enviando email. Isso criará a classe sob o App \ Mail pasta.

$ PHP Artisan Make: Mail SendingEmail

Crie um arquivo de visualização chamado EmailSend.lâmina.php com o código a seguir para exibir o formulário de contato.




Entre em contato conosco












Contate-nos




@if (contagem ($ erros)> 0)



    @foreach ($ erros-> all () como $ error)
  • $ error

  • @endForEach


@fim se
@if ($ message = session :: get ('sucesso'))


$ message

@fim se



csrf_field ()


















Abrir EmailController e modifique o código com o seguinte código. O Correspondência fachada e enviando email As aulas de correio são importadas no início do arquivo. Aqui o índice() O método carregará o arquivo de exibição no navegador para exibir o formulário de contato. Depois de enviar o formulário, o enviar() Método será chamado. Este método validará o formulário usando as regras de validação. O $ dados a matriz é usada para enviar os valores do nome e mensagem campos no enviando email aula. Em seguida, o email é enviado usando o Correspondência fachada. Você deve definir um endereço de e -mail válido do receptor no para() função antes de executar o código. Se o email enviar com sucesso, uma mensagem de sucesso imprimirá.

namespace app \ http \ controladores;
use iluminado \ http \ request;
use iluminado \ support \ fachades \ Mail;
Use App \ Mail \ SendingEmail;
Classe emailcontroller estende o controlador

Índice de função ()

Return View ('emailsend');

função envia (solicitação $ solicitação)

$ this-> validar ($ solicitação, [
'Nome' => 'Necessário',
'Email' => 'Necessário | Email',
'Mensagem' => 'Necessário'
]);
$ data = matriz (
'Nome' => $ request-> Nome,
'mensagem' => $ request-> mensagem
);
Mail :: para ('Endereço de e-mail do receptor')-> send (novo sendingemail ($ dados));
retornar ()-> com ('sucesso', 'obrigado por entrar em contato conosco!');

Abra o enviando email classe e modifique o código com o seguinte código. O assunto do email é definido dentro do construir() método e o email_template A visualização é usada para formatar o conteúdo do email, criado na próxima etapa. Os valores passados ​​do EmailController são armazenados no $ email objeto e são passados ​​no email_template visualizar.

namespace app \ Mail;
use iluminado \ barramento \ queueable;
use iluminado \ contratos \ fila \ devequim;
Use iluminado \ Mail \ Mailable;
use iluminado \ fila \ serializaModels;
O correio de envio de classe estende por correio

use models de modos em ruínas;
/**
* Crie uma nova instância de mensagem.
*
* @return void
*/
Public $ e -mails;
Função pública __construct ($ e -mails)

$ this-> e-mails = $ emails;

/**
* Construa a mensagem.s
*
* @return $ this
*/
função pública Build ()

retornar $ this-> sujeito ('mensagem do visitante')
-> View ('email_template')
-> com ('emails', $ this-> e-mails);

Crie o arquivo de exibição de modelo nomeado email_template.lâmina.php com o código a seguir para enviar o email formatado para o remetente. Os valores passados ​​do enviando email A classe é usada neste modelo.

Olá,
Eu sou $ e -mails ['nome']


Minha consulta é sobre o seguinte tópico:


$ e -mails ['mensagem'].


Vai ser útil se você me dar resposta em breve.Obrigado.

Agora, abra o rede.php Arquive e adicione o seguinte código de rota para abrir o formulário de contato e enviar o email.

Rota :: get ('/contato', 'emailcontroller@index');
Route :: Post ('/Sendemail/Send', 'EmailController@send');

Execute o seguinte URL do navegador para carregar o formulário de contato.

http: // localhost/laravelpro/public/Contact

Preencha o formulário e clique no Enviar mensagem botão para enviar o conteúdo do formulário para o enviar() Método do EmailController aula.

Se o email for enviado com sucesso, você obterá a mensagem de sucesso, como mostrado na imagem a seguir.

Agora, abra a conta do Gmail que você costumava enviar um email no enviar() Método do EmailController aula. Se você abrir o email, obterá o seguinte conteúdo de email, gerado usando um email_template visualizar arquivo.

Vídeo tutorial

Conclusão

Existem várias maneiras na estrutura do Laravel para enviar um email. A maneira mais simples e mais fácil de enviar e -mail em Laravel é mostrada neste tutorial. Se você possui uma conta do Gmail, poderá enviar um email facilmente seguindo as etapas mostradas neste tutorial. O servidor SMTP do Gmail é usado aqui para enviar um email e a tarefa de envio de email é testada executando o código do servidor local. Este tutorial mostra apenas tarefas de envio de e-mail formatadas em HTML apenas. Você também pode executar outras tarefas, como anexo de arquivo, nome do remetente, etc., usando outros métodos do Correspondência aula.