
Email Catch: Od Weekendowego Projektu Do Alternatywy Dla Amazon SES
Email Catch: Od weekendowego projektu do alternatywy dla Amazon SES
Jako programista, który lubi eksperymentować w weekendy, postanowiłem zmagać się z problemem, który prawdopodobnie dotyka wielu z nas - jak w prosty sposób odbierać i przetwarzać emaile bez konieczności używania skomplikowanych rozwiązań chmurowych.
Genesis projektu
Historia Email Catch to typowa droga ewolucji weekendowego projektu. Wszystko zaczęło się od prostej potrzeby: chciałem mieć kontrolę nad tym, jak moja aplikacja odbiera emaile. Pierwszą wersję napisałem w Node.js - szybko, funkcjonalnie, potem pojawił się golang.
Postanowiłem przepisać całość. Wykorzystałem podejście “vibe coding” - poniewa moja znajomość Go była lekko juz zakorzuona.
Dlaczego nie serverless?
Kiedy pojawił się Amazon SES, naturalnym wyborem wydawało się skorzystanie z rozwiązań serverless i zestawienie wszystkiego na AWS Lambda. I rzeczywiście - przez jakiś czas tak robiłem. Jednak z czasem złożoność całego rozwiązania zaczęła mnie przytłaczać:
- Konfiguracja wielu Lambda function
- Zarządzanie IAM rolami
- Debugowanie rozproszonych procesów
- Vendor lock-in
To wszystko doprowadziło mnie do wniosku, że potrzebuję czegoś prostszego, bardziej kontrolowalnego.
Co powstało?
Email Catch to wysokowydajny serwis SMTP napisany w Go, który:
Odbiera emaile - wystarczy ustawić rekord MX na nasz serwer i wszystkie emaile wysłane na naszą domenę trafiają bezpośrednio do aplikacji.
Routing na sterydach - system reguł pozwala na przekierowanie emaili na podstawie domeny i wzorca adresata.
Elastyczne przechowywanie - wsparcie dla:
- Zapisu lokalnego (pliki .eml)
- S3-kompatybilnych rozwiązań (AWS S3, MinIO, DigitalOcean Spaces)
Webhooks - natychmiastowe powiadomienia z pełną treścią emaila w formacie JSON
Integracja z automatyzacją
Prawdziwa siła Email Catch ujawnia się w połączeniu z narzędziami automatyzacji jak https://n8n.io/ . Dzięki webhookom można w prosty sposób:
Przetwarzać faktury - automatyczne wyciąganie danych z załączników PDF i przekazywanie do systemu księgowego
Powiadomienia - natychmiastowe alerty na Slacku o nowych emailach z określonego domeny i adresata
Archiwizacja - inteligentny zapis ważnych emaili z kategoryzacją
Bezpieczeństwo
Email Catch został zaprojektowany z myślą o bezpieczeństwie:
- TLS/SSL - szyfrowana komunikacja z automatycznymi certyfikatami Let’s Encrypt
- Wieloportowość - wsparcie dla standardowych portów SMTP (25, 587, 465, 2525)
- Graceful shutdown - bezpieczne zamykanie połączeń
- Rate limiting - ochrona przed nadużyciami
Podsumowanie
Czasami najlepsze rozwiązania powstają z frustracji istniejącymi narzędziami. Email Catch pokazuje, że nie zawsze potrzebujemy skomplikowanych rozwiązań chmurowych - czasem prosty, dobrze napisany serwis może być znacznie bardziej efektywny.
Jeśli szukasz alternatywy dla Amazon SES lub po prostu chcesz mieć pełną kontrolę nad odbieraniem emaili w swojej aplikacji, Email Catch może być odpowiedzią na Twoje potrzeby.
Email Catch jest dostępny na GitHub: https://github.com/slav123/email-catch
Projekt jest open source na licencji MIT - contributions welcome!