Jak stworzyć i przetestować aplikację wysyłającą e-maile (bez wypełniania czyjejś skrzynki pocztowej danymi testowymi)? [Zamknięte]

129

Mam wiele aplikacji, które wysyłają e-maile. Czasami jest to jedna lub dwie wiadomości naraz. Czasami to tysiące wiadomości.

W trakcie prac rozwojowych zazwyczaj testuję, zastępując własny adres jakimikolwiek adresami odbiorców. Jestem pewien, że tak robią wszyscy, dopóki nie znudzą się tym i nie znajdą lepszego rozwiązania.

Myślałem o stworzeniu fałszywego serwera SMTP, który po prostu przechwytuje wiadomości i zrzuca je do bazy danych SQLLite, pliku mbox lub cokolwiek innego.

Ale na pewno takie narzędzie już istnieje? Jak testujesz wysyłanie e-maili?

Patrick McElhaney
źródło
42
@casperOne Po co zamykać to pytanie trzy i pół roku później? Jest to prosty problem z kilkoma przydatnymi rozwiązaniami. Nie było żadnej debaty, ankiet ani dłuższej dyskusji. Gdyby ta strona zniknęła z wyników wyszukiwania Google, czy poprawiłoby to internet?
Patrick McElhaney,
1
Jest to lista zakupów / pytanie dotyczące rekomendacji produktów (a także z natury subiektywne i otwarte: „jak testujesz wysyłanie wiadomości e-mail”), z których żadne nie pasuje już do witryny.
casper 1
3
@casperOne Następnie przeformułuj pytanie, aby nie było tak subiektywne. Nie szukałem najlepszego produktu w kategorii X. Pytałem, czy kategoria X istnieje. W każdym razie nie odpowiedziałeś na moje pytanie. Przekonaj mnie, że usunięcie tej strony poprawiłoby internet, i sam go usunę.
Patrick McElhaney,
12
@casperOne Natknąłem się na to pytanie od Google pytającego o opcje oparte na systemie Windows (w przeciwieństwie do opcji Linuksa, z którymi miałem wcześniej kontakt). Wszystkie linki okazały się pomocne. Ta strona internetowa będzie bardzo pominięta.
justin.lovell
5
Cóż, właśnie szukałem narzędzia serwera poczty systemu Windows, które po prostu pobiera wiadomości z lokalnego hosta i stwierdziłem, że jest to proste i łatwe dzięki temu pytaniu. Większość ludzi ma pozytywną odpowiedź, więc nie rozumiem, dlaczego chcesz to zamknąć, ponieważ robi to, czego oczekuje większość ludzi.
sveri

Odpowiedzi:

84

Kilka tygodni temu napotkałem ten sam problem i napisałem to: http://smtp4dev.codeplex.com

Fikcyjny serwer SMTP kompatybilny z Windows 7 / Vista / XP / 2003/2010. Znajduje się w zasobniku systemowym i nie dostarcza odebranych wiadomości. Otrzymane wiadomości można szybko przeglądać, zapisywać i sprawdzać źródło / strukturę. Przydatne do testowania / debugowania oprogramowania, które generuje e-maile.

rnwood
źródło
+1 Trochę błędny, ale overrall robi to, do czego jest potrzebny. Dzięki!
David
4
Miło, gdy działa, ale bardzo podatne na awarie.
olefevre
Wygląda to na genialną aplikację, niestety zawiesza się dla mnie za każdym razem, gdy otrzymuję wiadomość (uruchamianie smtp4dev na win7, wysyłanie ze skryptu e-mail testu poczty bazy danych SQL Server)
Jona,
Właśnie pobrałem to, aby przetestować kod wysyłający e-mail za pośrednictwem programu Sharepoint. Nie miałem zainstalowanego SMTP na moim wirtualnym, więc ta aplikacja działała jak marzenie. Sława!
Ryan
2
Co jest warte, w systemie Windows 7 - 64-bitowym smtp4dev nie działał, ale papercut.codeplex.com tak. Maile były generowane za pomocą JavaMail.
Ashutosh Jindal
73

Kilka temu natrafiłem na następujące rozwiązanie dla platformy .NET .

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
    </smtp>
  </mailSettings>
</system.net>

Po prostu umieść powyższy kod w pliku App.config lub Web.config. Gdy wyślesz teraz wiadomość, zostanie ona zapisana jako plik w katalogu, który podałeś jako „pickupDirectoryLocation”. Działa jak marzenie.

Joop
źródło
3
Niesamowita, zerowa instalacja ... działa świetnie dla mnie. Dzięki!
WildJoe
Używam SmtpClient w aplikacji sieci web .Net z określonym hostem smtp ustawionym w czasie kompilacji. Nie widzę żadnej zmiany w zachowaniu w wyniku dodania tego na końcu mojego pliku web.config.
4
Aha! Zgłasza wyjątek, chyba że wcześniej utworzysz folder. Niezła sztuczka!
1
Niesamowita mała sztuczka z zerową instalacją.
Mike Kruger
Mieliśmy ten sam problem podczas pracy z stos .NET - skończyło się na budowaniu tej usługi , aby rozwiązać ten problem
isNaN1247
18

Obecnie dostępna jest internetowa wersja Papercut.

Również wersja oparta na aplikacji działa dobrze dla mnie.

Adam Seabridge
źródło
14

Dumbster może być tym, czego chcesz. To fałszywy serwer SMTP typu open source napisany w Javie. Zajmuje miejsce prawdziwego serwera SMTP, dzięki czemu możesz przetestować swoją aplikację w realistycznym ustawieniu, bez konieczności usuwania kodu. Możesz upewnić się, że właściwe wiadomości są wysyłane na serwer SMTP bez faktycznego dostarczania wiadomości.

Fredou
źródło
9

Jest to podobne do smtp4dev, z wyjątkiem zaimplementowanego w Javie, więc działa dla programistów innych niż Windows.

http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp

txyoji
źródło
na mac, aby użyć portu 25, uruchom następującą komendę w terminalu, w tym samym katalogu, co pobrany plik:sudo java -jar DevNullSmtp.jar
Brad Parks
6

Jest też Papercut i Neptune , szkoda, że ​​żadnego z nich nie można uruchomić w sposób przenośny.

Alix Axel
źródło
W końcu udało mi się ich wypróbować. Niestety oba ciągle się zawieszają.
Patrick McElhaney,
4
Właśnie wypróbowałem Papercut. Działa świetnie i ma dodatkową funkcję umożliwiającą przeglądanie wiadomości e-mail bezpośrednio w interfejsie użytkownika.
Jeremy Wiebe
1
Papercut działa. Szkoda, że ​​to tylko Windows. Chciałbym zobaczyć tę platformę krzyżową.
Wim Deblauwe
6

Od lat używam narzędzia „Test Mail Server Tool” z ToolHeap.

http://www.toolheap.com/test-mail-server-tool/

Jest to prosta aplikacja, która działa w zasobniku systemowym i zrzuca wiadomości e-mail do folderu. Można go również skonfigurować tak, aby otwierał każdą wiadomość e-mail w domyślnym programie pocztowym.

Adrian Clark
źródło
1
Również. Po prostu działa.
Adaddinsane,
5

jeśli używasz javy, użyłbym Wiser : Wiser to prosty serwer SMTP, którego możesz używać do testowania jednostek, które wysyłają pocztę.

Persymon
źródło