Come configurare un server SMTP falso per catturare tutti i messaggi?


50

Sto cercando un servizio smtp che obbedisce essenzialmente alla RFC, tranne che invece di inviare posta semplicemente registra in un file

[date] sent mail to <address>

O qualunque cosa. Posso basarlo insieme al minimo indispensabile di funzionalità di cui ho bisogno in Python in circa mezz'ora, ma se esiste un progetto esistente che funziona meglio, preferirei usarlo.

Il motivo per cui è necessario è il debug di un'app che continua a inviare 7 * la quantità di posta che dovrebbe.

EDIT: E già chiesto: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Sì, a questa domanda è stata data una risposta su StackOverflow, ma non ho visto la risposta basata su Python laggiù.
BitwiseMan,

Questo è anche risposto a StackOverflow: stackoverflow.com/questions/48653699/...
realbart

Risposte:


58

Se hai Python in giro, scriverà la conversazione SMTP su stdout.

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

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


Lo riprendo, supporta e-mail HTML.
HTTP500,

2
ancora il modo migliore per eseguire il debug!
MarZab,

Nessun supporto per starttls :(
Att Righ

1
@AttRigh su smtplib ha implementato TLS ma l'utilizzo non sarà così semplice. Pubblica la domanda; forse qualcuno ha già una sceneggiatura?
John Mee,

11

Dovresti dare un'occhiata a smtp-sinkquale è una parte di Postfix. Non è necessario eseguire Postfix per farlo funzionare. Basta installarlo per avere l'eseguibile. Tutto ciò di cui hai bisogno può essere configurato tramite i parametri della riga di comando:

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


Grazie mailq. Questo è più o meno esattamente quello che stavo cercando!
Richo,

8

C'è anche una gemma rubino chiamata mailcatcher .

Puoi leggere le e-mail direttamente nel tuo browser attraverso l'interfaccia web integrata, c'è uno screenshot dalla loro homepage qui sotto.

Interfaccia Mailcatcher


1
Attualmente utilizziamo mailcatcher, arresti anomali troppo.
Jacob Evans,

6

Utilizziamo il servizio Web http://mailtrap.io in ambiente di sviluppo e gestione temporanea. È indipendente dalla piattaforma e non richiede di eseguire il proprio SMTP.

Offre:

  • Tutte le email in un unico posto
  • Accesso condiviso per il team di sviluppo alla posta in arrivo
  • Strumenti per sviluppatori per analizzare le e-mail
  • Configurazione flessibile

Questo è fantastico e molto più robusto di quello che stavo facendo! Grazie.
richo,

Mi piace che offrano un generoso piano gratuito (per ora).
David

3

smtp4dev ha funzionato bene per me. (Solo Windows)


Ho appena installato e utilizzato questo fantastico piccolo strumento. Perfetto per le mie esigenze (niente java e una bella interfaccia utente)
Nick.McDermaid


2

Disclaimer: questa è una risposta tardiva, ma credo sinceramente che aiuterà i futuri spettatori. Inoltre, ho lavorato su questo prodotto.

Abbiamo creato Mailosaur per risolvere questo esatto problema. Da allora l'abbiamo creato per aggiungere indirizzi e-mail di prova e SMTP.



1

Devo solo rovinare qualsiasi servizio smtp e quindi inviare il risultato a un po 'secchio!


Sto parlando di e-mail di massa, e con i dati dei clienti in diretta coinvolti. Devo essere sicuro che non inonderò gli intrusi con la posta.
richo

Ho finito per estendere la classe smtpd.SMTPServer di Python, rilascerò il progetto pubblicamente tra una settimana o giù di lì quando ne sarò contento (lo sto raggruppando con una suite di test httpd che ho scritto qualche tempo fa). Ho provvisoriamente chiamato la suite sdb.
richo

@Richo: ci sono molti modi per impedire a un server SMTP di inviare e-mail - la maggior parte ti consente di disattivare le connessioni in uscita o reindirizzare tutti i messaggi, oppure puoi bloccare le connessioni in uscita verso la porta 25 .... nessuno si preoccuperebbe di scrivere un finto mailserver whwn è banale configurarne uno reale per comportarsi in questo modo.
symcbean,

@symcbean: quelli sono tutti punti validi. Personalmente trovo più facile interrompere il mio consueto servizio di posta, avviare il mio servizio di debug, eseguire il mio debug e riavviare l'ambiente live. Kludges, come il dumping di tutto il traffico della porta 25, impedisce a qualcos'altro di inviare posta. Grazie per l'aiuto, però,
richo

niente di tutto questo ha senso, tutti i gateway smtp ti daranno questa esatta funzionalità senza perdere nessuna delle e-mail live in uscita!
tony roth il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.