Aprenda como enviar emails com o Laravel por SMTP Relay

Este tópico contém resposta, possui 1 voz e foi atualizado pela última vez por  Luis FatorBinario 1 ano, 8 meses atrás.

  • Autor
    Posts
  • #12711
     Luis FatorBinario 
    Administrador

    O Laravel permite enviar emails de muitas maneiras, você pode enviar pela função interna PHP, Sendmail entre outras. Mas a melhor e preferida, caso você queira que a mensagem seja entregue na caixa de entrada do destinatário, é por SMTP Relay.

    Eu publiquei vários tutoriais aqui no Fator Binário falando sobre isso e de como se cadastrar em algumas destas empresas de relay. A mais usada por mim e pelos meus clientes é a SparkPost que permite enviar até 100 mil emails por mês gratuitamente.

    SPARKPOST:

    Crie uma conta gratuita no site deles, você pode seguir o meu tutorial do link acima para isso. Após criar a conta adicione o domínio e valide ele criando a entrada DKIM na tabela DNS.

    Depois de o domínio estar validado crie uma chave API para envio somente do site que deseja usar SMTP Relay. Na criação da chave ative somente as opções “Send via SMTP” e “Transmissions: Read/Write“. E ainda se possivel digite o IP do servidor que irá enviar os emails na caixa “Allowed IPs“, isso fará com que somente se o script estiver naquele servidor consiga enviar emails usando aquela conta da SparkPost.

    Anote o número da API que aparecerá na tela pois não há como recuperá-la novamente.

     

    LARAVEL:

    Agora que você já tem as credenciais de envio pela SparkPost vamos configurar o Laravel para o envio.

    Na pasta raiz do seu site em Laravel há um arquivo oculto chamado “.env“. Nele já existe um bloco de configuração próprio para emails, vamos alterá-lo para envio por SMTP Relay.

    Edite o arquivo e procure pelos parâmetros abaixo, substituindo as informações em negrito pelas suas credenciais do SparkPost:

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.sparkpostmail.com
    MAIL_PORT=2525
    MAIL_USERNAME=SMTP_Injection
    MAIL_PASSWORD=O-NUMERO-DA-API-CRIADA
    MAIL_ENCRYPTION=tls

     

    Algumas notas sobre a configuração:

    Note que usamos a porta 2525, isso é um truque, esta porta nunca é monitorada por empresas de hosting e o email será entregue mesmo se houver bloqueio de saída como a maioria delas fazem.

    O usuário para a SparkPost será sempre “SMTP_Injection”, é estranho mas é assim mesmo.

    Não esqueça de substituir os demais parâmetros pois são importantes.

     

    Salve o arquivo e envie um email de teste pelo seu site em Laravel. Se o email demorar muito para chegar verifique o status do envio no painel da SparkPost em “Reports / Message Events”.

     

Visualizando 1 post (de 1 do total)

Você deve fazer login para responder a este tópico.

©2014-2018 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

ou    

Esqueceu sua senha?

Create Account