Jak skonfigurować fałszywy serwer SMTP, aby przechwytywał wszystkie wiadomości e-mail?


50

Szukam usługi smtp, która zasadniczo jest zgodna z RFC, z wyjątkiem wysyłania poczty, po prostu loguje się do pliku

[date] sent mail to <address>

Lub cokolwiek. Mogę to zepsuć razem z absolutnym minimum funkcjonalności, której potrzebuję w Pythonie za około pół godziny, ale sądzę, że jeśli istnieje istniejący projekt, który działa lepiej, wolałbym go użyć.

Powodem tego jest debugowanie aplikacji, która wysyła 7 * tyle wiadomości, ile powinna.

EDYCJA: I już zapytałem: https://stackoverflow.com/questions/1006650/dummy-smtp-server-for-testing-apps-that-send-email


Tak, na to pytanie odpowiedziano przy stosie przepływu, ale nie widziałem tam odpowiedzi opartej na pythonie.
BitwiseMan

Odpowiedzi
udzieliło

Odpowiedzi:


58

Jeśli masz wokół siebie pytona, zapisz rozmowę SMTP na standardowe wyjście.

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

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


Cofam to, obsługuje emaile HTML.
HTTP500

2
wciąż najlepszy sposób na debugowanie!
MarZab,

Brak obsługi starttls :(
Att Righ

1
@AttRigh smtplib ma zaimplementowany protokół TLS, ale korzystanie z niego nie będzie takie proste. Opublikuj pytanie; może ktoś ma już skrypt?
John Mee,

11

Powinieneś rzucić okiem na smtp-sinkczęść Postfix. Nie musisz uruchamiać Postfix, aby działał. Wystarczy zainstalować, aby mieć plik wykonywalny. Wszystko, czego potrzebujesz, można skonfigurować za pomocą parametrów wiersza poleceń:

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


Dzięki mailq. To mniej więcej dokładnie to, o co mi chodziło!
richo

8

Istnieje również rubinowy klejnot o nazwie mailcatcher .

Możesz czytać wiadomości e-mail bezpośrednio w przeglądarce za pośrednictwem zintegrowanego interfejsu internetowego, poniżej znajduje się zrzut ekranu z ich strony głównej.

Interfejs programu Mailcatcher


1
Obecnie używamy programu pocztowego, powoduje zbyt duże awarie.
Jacob Evans,

6

Korzystamy z usługi internetowej http://mailtrap.io w środowisku programistycznym i programowym. Jest niezależny od platformy i nie wymaga uruchamiania własnego SMTP.

Oferuje:

  • Wszystkie e-maile w jednym miejscu
  • Wspólny dostęp dla zespołu programistów do skrzynki odbiorczej
  • Narzędzia programistyczne do analizy wiadomości e-mail
  • Elastyczna konfiguracja

To jest świetne i znacznie bardziej niezawodne niż to, co robiłem! Dzięki.
richo

Podoba mi się, że oferują hojny darmowy plan (na razie).
David

3

smtp4dev działa dla mnie dobrze. (Tylko Windows)


Właśnie zainstalowałem i użyłem tego niesamowitego małego narzędzia. Idealny dla moich potrzeb (brak java i niezły interfejs użytkownika)
Nick.McDermaid


2

Oświadczenie: To późna odpowiedź, ale naprawdę wierzę, że pomoże przyszłym widzom. Pamiętaj też, że pracowałem nad tym produktem.

Zbudowaliśmy Mailozaura , aby rozwiązać dokładnie ten problem. Od tego czasu opracowaliśmy go, aby dodawać testowe adresy e-mail oraz SMTP.



1

Po prostu rozwidlam prawie każdą usługę smtp, a następnie wysyłam wynik do małego wiadra!


Mówię jednak o masowych wiadomościach e-mail oraz o danych na żywo klientów. Muszę być pewny, że nie zamierzam zalać intertronów pocztą.
richo

Skończyło się na rozszerzeniu klasy smtpd.SMTPServer Pythona, opublikuję projekt publicznie za około tydzień, kiedy będę z niego zadowolony (dołączam go do pakietu testowego httpd, który napisałem jakiś czas temu). Wstępnie nazwałem pakiet sdb.
richo

@Richo: istnieje wiele sposobów, aby zatrzymać serwer SMTP przed wysyłaniem wiadomości e-mail - większość z nich pozwala wyłączyć połączenia wychodzące lub przekierować wszystkie wiadomości lub zablokować połączenia wychodzące do portu 25 .... nikt nie zawracałby sobie głowy pisaniem fałszywego serwera poczty trywialne jest skonfigurowanie prawdziwego, aby zachowywał się w ten sposób.
symcbean

@symcbean: wszystkie są poprawnymi punktami. Osobiście łatwiej jest mi zatrzymać zwykłą usługę pocztową, uruchomić usługę debugowania, przeprowadzić debugowanie, a następnie ponownie uruchomić środowisko na żywo. Kludges, takie jak zrzucanie całego ruchu z portu 25, uniemożliwia cokolwiek innego wysyłanie poczty. Dzięki za pomoc,
richo

nic z tego nie ma sensu, wszystkie bramy smtp zapewniają dokładnie taką funkcjonalność bez utraty jakichkolwiek wychodzących wiadomości e-mail na żywo!
Tony Roth,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.