- Este tópico contém 0 resposta, 1 voz e foi atualizado pela última vez 8 anos atrás por
Luis FatorBinario.
-
AutorPosts
-
02/03/2017 às 11:43 #12711
Luis FatorBinario
AdministradorO 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=tlsAlgumas 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”.
-
AutorPosts
- Você deve fazer login para responder a este tópico.