PT
Iniciar sessão Criar conta

Como instalar o Mailpit na Saplo (SMTP catcher para testar e-mails de saída)

Um e-mail de teste com redefinição de palavra-passe ou fatura, que, por engano, vai para a caixa de entrada real do cliente, é um daqueles erros que se recordam por muito tempo. O Mailpit é um SMTP catcher de código aberto que interceta todos os e-mails enviados via SMTP da tua aplicação e os exibe num painel web, em vez de os enviar para o mundo, instalado com um clique na tua Box.

Grzegorz Kalmus ·

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.pl incluí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

  1. No Painel Saplo, acede ao Catálogo de aplicações e seleciona Mailpit (categoria "Ferramentas").
  2. 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.
  3. 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.
  4. Após docker compose up, o motor verifica se o painel está a responder por HTTP antes de considerar a instalação concluída.
  5. Os dados de ligação SMTP para outras aplicações na mesma Box (host, porta) são guardados no ficheiro MAILPIT-SETUP.txt no 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.

  1. 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.
  2. Na configuração SMTP da tua aplicação (WordPress, Django, Node) na mesma Box, introduz o host 127.0.0.1 e a porta indicada no ficheiro MAILPIT-SETUP.txt - o nome de utilizador e a palavra-passe podem ser quaisquer, o Mailpit aceita quaisquer dados de login.
  3. 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.
  4. 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.
  5. 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