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.