Como configurar um servidor SMTP falso para capturar todos os emails?


50

Estou procurando um serviço smtp que essencialmente obedeça ao RFC, exceto que, em vez de enviar e-mail, ele simplesmente registra em um arquivo

[date] sent mail to <address>

Como queiras. Posso basear isso junto com o mínimo de funcionalidade necessária em python em cerca de meia hora, mas se houver um projeto existente que funcione melhor, prefiro usá-lo.

O motivo da necessidade é depurar um aplicativo que continua enviando 7 * a quantidade de e-mail que deveria.

EDIT: E já perguntou: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Sim, esta pergunta foi respondida no stackoverflow, mas eu não vi a resposta baseada em python por lá.
precisa saber é o seguinte

Isso também é respondido no stackoverflow: stackoverflow.com/questions/48653699/…
realbart

Respostas:


58

Se você tem python por aí, isso irá gravar a conversa SMTP no stdout.

sudo python -m smtpd -n -c DebuggingServer localhost:25

http://docs.python.org/library/smtpd.html#debuggingserver-objects


Retiro, ele suporta emails em HTML.
HTTP500

2
ainda é a melhor maneira de depurar!
MarZab #

Não há suporte para starttls :(
Att Righ

11
@AttRigh, o smtplib implementou o TLS, mas usá-lo não será tão simples quanto isso. Poste a pergunta; talvez alguém já tenha um script?
John Mee

11

Você deve dar uma olhada no smtp-sinkque faz parte do Postfix. Você não precisa executar o Postfix para fazê-lo funcionar. Basta instalá-lo para ter o executável. Tudo o que você precisa pode ser configurado através dos parâmetros da linha de comando:

http://www.postfix.org/smtp-sink.1.html


Obrigado mailq. Isso é mais ou menos exatamente o que eu estava procurando!
Richo

8

Há também uma gema de rubi chamada mailcatcher .

Você pode ler os e-mails diretamente no seu navegador através da interface da web integrada; há uma captura de tela da página inicial abaixo.

Interface do Mailcatcher


11
Atualmente, usamos o mailcatcher, trava demais.
Jacob Evans

6

Utilizamos o serviço da web http://mailtrap.io no ambiente de desenvolvimento e preparação. É independente da plataforma e não exige que você execute seu próprio SMTP.

Oferece:

  • Todos os emails em um só lugar
  • Acesso compartilhado da equipe de desenvolvimento à caixa de entrada
  • Ferramentas de desenvolvedor para analisar e-mails
  • Configuração flexível

Isso é ótimo e muito mais robusto do que eu estava fazendo! Obrigado.
Richo

Eu gosto que eles oferecem um plano gratuito generoso (por enquanto).
David

3

O smtp4dev funcionou bem para mim. (Apenas Windows)


Acabei de instalar e usar esta pequena ferramenta incrível. Perfeito para as minhas necessidades (sem java e uma boa interface do usuário)
Nick.McDermaid


2

Isenção de responsabilidade: esta é uma resposta tardia, mas acredito sinceramente que ajudará futuros telespectadores. Observe também que trabalhei neste produto.

Construímos o Mailosaur para resolver esse problema exato. Desde então, o criamos para adicionar endereços de e-mail de teste e SMTP.



1

Eu apenas bifurco praticamente qualquer serviço smtp e envia o resultado para um pouco de balde!


Mas estou falando de e-mails em massa e com dados de clientes ativos envolvidos. Eu preciso ter certeza de que não vou inundar os intertrons com correspondência.
Richo

Acabei estendendo a classe smtpd.SMTPServer do python, lançarei o projeto publicamente em uma semana, mais ou menos, quando estiver feliz com ele (estou empacotando-o com um conjunto de testes httpd que escrevi há algum tempo). Eu nomeei provisoriamente o conjunto sdb.
richo

@Richo: existem várias maneiras de impedir que um servidor SMTP envie emails - a maioria permite desativar as conexões de saída ou redirecionar todas as mensagens, ou você pode bloquear as conexões de saída para a porta 25 .... ninguém se incomodaria em escrever um servidor de correio fictício whwn é trivial configurar um real para se comportar dessa maneira.
symcbean

@symcbean: todos esses pontos são válidos. Pessoalmente, acho mais fácil interromper meu serviço de email habitual, iniciar meu serviço de depuração, depurar e ativar o ambiente ativo novamente. Kludges, como descarregar todo o tráfego da porta 25, impedem que outras pessoas enviem emails. Obrigado pela ajuda, porém,
richo

nada disso faz sentido, todos os gateways smtp fornecerão essa funcionalidade exata sem perder nenhum dos e-mails ativos enviados!
tony roth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.