Testar notificações por email da tua própria aplicação tem um problema recorrente: se a aplicação envia emails através de um SMTP real, mais cedo ou mais tarde um erro de digitação nos dados de teste ou uma mudança de ambiente esquecida fará com que uma redefinição de senha ou fatura de teste vá para a caixa de entrada de um cliente real. O Mailtrap resolve isso na cloud, mas com uma subscrição que aumenta com o número de emails enviados. O Mailpit é um SMTP catcher de código aberto que instalas na tua própria Box, ele interceta todas as mensagens enviadas por SMTP da tua aplicação e mostra-as num painel web, sem limite de número de emails e sem taxa mensal. Abaixo, passo a passo, como instalar o Mailpit no Saplo.
Porquê o Mailpit em vez de enviar para uma caixa de entrada real ou Mailtrap
Testar e-mails sem um recetor dedicado geralmente segue um de dois caminhos, e ambos têm desvantagens:
- enviar para uma caixa de entrada de teste real - funciona até que alguém confunda uma variável de ambiente ou o endereço do destinatário nos dados de teste, e então o e-mail de teste vai para onde não deveria ir,
- Mailtrap e serviços de nuvem semelhantes - resolvem este problema, mas custam, e o limite do número de e-mails intercetados no plano gratuito esgota-se mais rapidamente do que a equipa termina os testes.
O Mailpit funciona como um único contentor Docker na tua Box, então cada e-mail enviado por SMTP da aplicação é intercetado localmente, sem limite de número de mensagens e sem o risco de algo ser enviado para um destinatário real.
Mailpit, Mailtrap e MailHog
O Mailpit é o sucessor direto do MailHog, um projeto que não é desenvolvido há algum tempo. A pergunta natural é: qual a diferença entre os três?
- O Mailtrap é um serviço na cloud com um limite gratuito no número de e-mails intercetados por mês - conveniente, pois não precisas de instalar nada, mas pago para um tráfego de teste maior e com os teus dados num fornecedor externo.
- O MailHog é um projeto mais antigo com um papel muito semelhante, mas sem desenvolvimento ativo há anos, o que significa que não recebe correções nem novas funcionalidades.
- O Mailpit combina as vantagens de ambos - é ativamente desenvolvido como o MailHog costumava ser, e instalas no teu próprio Box, como o Mailtrap, sem limite de número de e-mails e sem taxas de tráfego de teste.
Se a equipa testa muitas notificações por e-mail e quer ter controlo total, sem limites no plano gratuito e sem esperar por um projeto parado, o Mailpit é a melhor opção.
Requisitos
Para instalares o Mailpit no Saplo, precisas de:
- Uma Box com Docker em execução (o motor ativa-o automaticamente ao instalar a partir do catálogo, é necessário o nesting num contentor, que o Saplo tem por padrão),
- Mínimo de 256 MB de RAM livre na Box e 2 GB de espaço em disco, ou seja, o plano Box S é suficiente,
- Um domínio ou subdomínio
*.saploapp.plincluído no preço de cada plano, onde será alojado o painel de visualização de e-mails, - Não precisas de criar uma base de dados separada - o Mailpit armazena os e-mails intercetados no seu próprio ficheiro SQLite no volume de dados.
Instalação passo a passo
- No Painel Saplo, acede ao Catálogo de aplicações e seleciona Mailpit (categoria "Ferramentas").
- Indica a Box com um mínimo de 256 MB de RAM livre, onde o catcher será instalado, e o domínio ou subdomínio sob o qual o painel irá funcionar.
- Confirma a instalação. O motor cria um contentor a partir da imagem oficial
axllent/mailpit, gera uma porta SMTP aleatória e expõe o painel web exclusivamente na loopback da Box, ligado ao Nginx, que o serve sob o domínio indicado com SSL gratuito. Apenas o painel é exposto externamente, a porta SMTP permanece disponível apenas localmente na Box. - Após
docker compose up, o motor verifica se o painel está a responder por HTTP antes de considerar a instalação concluída. - Os dados de ligação SMTP para outras aplicações na mesma Box (host, porta) são guardados no ficheiro
MAILPIT-SETUP.txtno diretório da aplicação.
Primeira configuração
O Mailpit, ao contrário do Chatwoot ou do Directus, não tem conta nem login no painel - é uma sandbox para testes, não um servidor de e-mail real, por isso o painel fica aberto imediatamente após a instalação.
- Acede ao endereço do domínio, por exemplo
poczta-test.saploapp.pl, e verás uma lista vazia de e-mails intercetados, pronta para a primeira mensagem. - Na configuração SMTP da tua aplicação (WordPress, Django, Node) na mesma Box, introduz o host
127.0.0.1e a porta indicada no ficheiroMAILPIT-SETUP.txt- o nome de utilizador e a palavra-passe podem ser quaisquer, o Mailpit aceita quaisquer dados de login. - Envia um e-mail de teste da aplicação, por exemplo, um reset de palavra-passe ou uma notificação de encomenda, e atualiza o painel do Mailpit - a mensagem aparecerá na lista com uma pré-visualização do conteúdo HTML e de texto, bem como dos anexos.
- Cada e-mail intercetado pode ser aberto, os cabeçalhos SMTP podem ser verificados e podes pré-visualizar como aparece num cliente de e-mail, sem o risco de que algo chegue a um destinatário real.
- Nenhum e-mail intercetado pelo Mailpit é enviado para mais lado nenhum - é apenas uma pré-visualização local para fins de teste.
Mailpit na Saplo vs. Mailtrap e MailHog
| Mailtrap na cloud | MailHog | Mailpit na Saplo | |
|---|---|---|---|
| Limite de e-mails | sim, no plano gratuito | nenhum | nenhum |
| Desenvolvimento ativo | sim | não | sim |
| Onde está o conteúdo dos e-mails intercetados | no servidor do fornecedor | no teu servidor | no teu Box |
| Custo | subscrição após exceder o limite | custo do teu próprio servidor | custo do próprio Box |
Perguntas Frequentes
O Mailpit envia e-mails para destinatários reais? Não, qualquer e-mail enviado via SMTP para o Mailpit é apenas intercetado e mostrado no painel, nunca chega ao destinatário real.
É necessário fornecer dados de login SMTP reais na aplicação? Não, o Mailpit aceita qualquer utilizador e palavra-passe, pois é apenas para intercetar envios de teste, não um servidor de e-mail real.
Em que é que o Mailpit difere do MailHog, se fazem a mesma coisa? O Mailpit é o sucessor ativamente desenvolvido do MailHog, um projeto que não recebe atualizações há muito tempo.
O Mailpit é adequado para envios de produção? Não, é apenas uma sandbox para testes - para envios reais, é necessária uma caixa de correio separada ou um serviço transacional.
Se a tua equipa está a testar notificações por e-mail da tua própria aplicação e quer ter a certeza de que nenhum e-mail de teste chega a um cliente real, escreve-nos, nós vamos ajudar a escolher a Box certa para a tua equipa.
- #DevOps
- #Mailpit
- #Guia
- #SMTP
- #Testes
