NetSendo v2.9.0: własny MTA, dedykowane IP i nowy dashboard
Własna infrastruktura pocztowa zawsze była kompromisem. Masz pełną kontrolę nad danymi i wysyłką, ale dostarczalność zależy od serwerów, loginów, kluczy DKIM i reputacji IP, którymi musisz zarządzać sam. Wielu użytkowników self-hosted w końcu się poddaje i kieruje pocztę przez płatny relay, a uzależnienie od dostawcy wraca.
NetSendo v2.9.0 zamyka tę lukę. Wbudowany NetSendo MTA jest teraz dostawcą skrzynek, który naprawdę wysyła. Sam obsługuje loginy domen, podpisy DKIM i dedykowane adresy IP. Wydanie przebudowuje też większość panelu, dodaje bezpieczniejszy link do wypisu jednym kliknięciem i naprawia dwa problemy bezpieczeństwa, których nie warto ignorować.
[[unsubscribe_now]] i przycisk „Wypisz mnie ze wszystkiego”, a także przebudowuje dashboard, menu, listy i edytor wiadomości. Naprawia też SQL injection w sortowaniu list i problem z izolacją kampanii SMS. Zaktualizuj jak najszybciej.🚀 Co nowego w v2.9.0
Dostawca NetSendo MTA
Wysyłka ze zweryfikowanych domen przez własny MTA oparty na Haraka.
Dedykowane IP
Zamawianie IP w Vultr lub Linode, z reverse DNS i instrukcjami krok po kroku.
Automatyczny DKIM
Klucz dla każdej domeny, używany do podpisu dopiero po weryfikacji rekordu DNS.
Nowy dashboard
Sekcja „Wymaga uwagi”, trendy 7/30/90 dni i prostsze menu z dziewięcioma sekcjami.
NetSendo MTA: własny serwer wysyłkowy, którym ktoś zarządza za Ciebie
Wyobraź sobie MTA jako własny urząd pocztowy, a NetSendo jako urzędnika, który załatwia całą papierologię. W Ustawienia → Skrzynki → Dodaj skrzynkę wybierasz NetSendo MTA (NMI), jedną ze zweryfikowanych domen i opcjonalnie dedykowany IP. Nie wpisujesz żadnego loginu do serwera.
- Automatyczne loginy: pierwsza skrzynka NMI w domenie tworzy 48-znakowy login SMTP. Jest przechowywany w postaci zaszyfrowanej i zapisywany w MTA jako skrót SHA-256. Nowe i zmienione loginy działają bez restartu.
- Przekazywanie tylko po zalogowaniu: MTA odrzuca niezalogowane sesje na etapie
RCPT TOi dostarcza pocztę własnym mechanizmem wysyłki Haraka. - Poczta wychodzi z wybranego IP: każda wiadomość niesie adres źródłowy i nazwę HELO. Formularz i Test połączenia pokazują, czy MTA naprawdę może wysyłać z tego IP.
- DKIM zrobiony dobrze: poczta jest podpisywana dopiero, gdy rekord TXT jest widoczny w DNS. Jeśli rekord zniknie, podpisywanie się zatrzymuje.
# .env
NMI_ENABLED=true
NMI_HELO_HOST=mail.example.com
# Aktualizacja instalacji z MTA
docker compose --profile nmi up -d --build
# Odtworzenie pliku loginów MTA z bazy (uruchamiane też co 10 min)
php artisan nmi:sync-mta-auth
⚠️ Ważne: Serwer potrzebuje otwartego wychodzącego portu 25. Wielu dostawców chmury go blokuje. Wtedy MTA przyjmuje pocztę, ale nie może jej dostarczyć. Dedykowane IP trzeba też skonfigurować na serwerze, razem z rekordami PTR.
Dedykowane IP z Vultr i Linode
Ustawienia → Infrastruktura pocztowa → Konfiguruj dostawców wyjaśnia teraz każdą ścieżkę w języku panelu: gdzie utworzyć klucz API, jakie są zasady dostawcy dotyczące portu 25 i ile kosztuje adres. NetSendo sprawdza klucz API u dostawcy, zanim go zapisze. Provision IP rezerwuje i przypina adres, a w Vultr ustawia też reverse DNS. Jeśli przypięcie się nie uda, NetSendo od razu zwalnia adres, więc nie płacisz za niego. Potem pokazuje kroki, których API nie wykona za Ciebie, z wpisanym Twoim IP i nazwą hosta. Usunięcie adresu najpierw zwalnia go u dostawcy. DigitalOcean nie jest już dostępny, bo jego Reserved IPs nie mogą wysyłać poczty. Dla Hetznera, OVH lub własnego centrum danych opisano ścieżkę ręczną.
Bezpieczniejsze wypisywanie
Nowy znacznik [[unsubscribe_now]] (Wstawki → Linki) otwiera stronę z jednym przyciskiem Wypisz mnie. Osoba zostaje wypisana od razu, bez maila z potwierdzeniem. Samo otwarcie linku niczego nie robi, więc skanery poczty nie wypiszą nikogo przypadkiem. Strona preferencji dostała przycisk „Wypisz mnie ze wszystkiego” i wyświetla się teraz w języku subskrybenta (PL, EN, DE, ES).
ℹ️ Uwaga: To wydanie naprawia poważny błąd. Zapisanie strony preferencji mogło zapisać osobę na wszystkie listy publiczne, gdy skaner poczty otworzył link potwierdzający. Strona pokazuje teraz tylko listy, na których osoba jest lub z których się wypisała, a powrót na listę wymaga kliknięcia Potwierdź.
Przebudowany panel
- Dashboard: pasek „Wymaga uwagi” pojawia się tylko wtedy, gdy coś jest nie tak. Na przykład CRON, który nie działał od 15 minut lub dłużej, jest teraz zgłaszany jako zatrzymany. Są też liczby z okresów 7/30/90 dni z rzetelnym porównaniem do poprzedniego okresu, wykres aktywności, akceptacje Brain, ostatnie i zaplanowane kampanie oraz jeden przycisk „Utwórz”.
- Menu boczne: dziewięć sekcji zamiast 71 linków, bez powtarzających się stron.
- Edytor wiadomości: zakładki Treść, Odbiorcy i Wysyłka (co, do kogo, kiedy) oraz pasek akcji przyklejony do dołu okna.
- Listy i ustawienia: zakładki statusów z licznikami, menu z nazwanymi akcjami zamiast ikon bez opisu, widoki działające na telefonie i czytelne błędy walidacji.
API: statystyki dashboardu dla wybranego okresu
curl -H "Authorization: Bearer $NETSENDO_API_KEY" \
"https://your-netsendo.com/api/dashboard/stats?period=7"
Parametr period przyjmuje 7, 30 lub 90, a domyślnie wynosi teraz 30. Odpowiedź zawiera też wartości previous dla każdej liczby oraz queue_pending, scheduled i dzienny activity_chart (data, e-maile, subskrybenci, otwarcia, kliknięcia).
💼 Korzyści i przypadki użycia
E-commerce: ochrona maili transakcyjnych
Wysyłaj sekwencje porzuconego koszyka i posprzedażowe z dedykowanego IP, oddzielnie od newsletterów:
- Problemy z reputacją po promocjach nie szkodzą potwierdzeniom zamówień
- Limity rozgrzewania każdego IP automatycznie obowiązują jego skrzynkę
[[unsubscribe_now]]ułatwia wypisanie się, co ogranicza zgłoszenia spamu
SaaS: onboarding bez rachunków za relay
Wysyłaj sekwencje onboardingowe i przeciwdziałające rezygnacjom przez własny MTA, bez opłat za każdą wiadomość. Podłącz /api/dashboard/stats?period=7 do swojego narzędzia BI, żeby co tydzień wychwytywać spadki otwarć.
Agencje: jeden MTA, wiele domen klientów
Każda domena klienta ma własny login SMTP i klucz DKIM, a może mieć też własne IP. Nowa izolacja kampanii SMS i uprawnienia do list („podgląd” lub „podgląd i edycja”) trzymają członków zespołu w ich własnej przestrzeni.
🛠️ Krok po kroku: wysyłka przez NetSendo MTA
- Zaktualizuj NetSendo
Uruchom
docker compose pull && docker compose up -d. Jeśli używasz MTA, pobierz nowydocker-compose.yml(dodaje wolumennmi-authi nowe pluginy) i uruchomdocker compose --profile nmi up -d --build. Migracje wykonają się automatycznie. - Zweryfikuj domenę
Otwórz Dostarczalność i zweryfikuj domenę wysyłkową. Jeśli nie masz jeszcze zweryfikowanej domeny, formularz skrzynki podaje link do tej strony.
- (Opcjonalnie) Zamów dedykowany IP
Podłącz klucz API Vultr lub Linode, kliknij Provision IP, wybierz serwer, na którym działa NetSendo, i podaj nazwę hosta. Potem wykonaj pokazane kroki: utwórz rekord A, skonfiguruj IP na serwerze, ustaw reverse DNS i uruchom MTA w sieci hosta za pomocą
docker-compose.nmi-host.yml. - Dodaj skrzynkę
Przejdź do Ustawienia → Skrzynki → Dodaj skrzynkę → NetSendo MTA, wybierz domenę i IP oraz użyj adresu nadawcy z tej domeny.
- Opublikuj DKIM
Skopiuj rekord TXT pokazany w formularzu, dodaj go do DNS i kliknij Zweryfikuj rekord.
- Przetestuj
Kliknij Test połączenia. Potwierdzi login i pokaże, czy poczta naprawdę wychodzi z wybranego IP.
💡 Typowe problemy: Nie możesz wybrać dostawcy? Kontener MTA nie działa, więc użyj Sprawdź ponownie. Linode odrzuca reverse DNS? Poczekaj, aż rekord A zacznie się rozwiązywać. Poczta wychodzi z innego IP? SprawdźNMI_BIND_MAP, jeśli dostawca tłumaczy adresy publiczne na prywatne, orazdocker logs netsendo-mta.
🎯 Porady eksperta
Zanim zamówisz IP, upewnij się, że wychodzący port 25 jest otwarty na Twoim serwerze. W Linode wybór serwera oznacza te z ograniczonym SMTP.
Korzystaj z limitów rozgrzewania i zacznij od najbardziej zaangażowanych segmentów. Nowe IP nie mają jeszcze reputacji.
docker/haraka/test/e2e.sh sprawdza login, adres źródłowy, nazwę HELO i weryfikację DKIM na prawdziwym serwerze odbiorczym.
Naprawiony SQL injection w kierunku sortowania listy wiadomości mógł wykorzystać każdy zalogowany użytkownik, także członek zespołu. Potraktuj tę aktualizację jako pilną.
🎉 Podsumowanie
NetSendo v2.9.0 daje Ci działającą infrastrukturę self-hosted: własny MTA, własne IP i własne klucze DKIM, bez opłat za relay i bez uzależnienia od dostawcy. Do tego dochodzą bezpieczniejsze wypisywanie, prostszy panel i ważne poprawki bezpieczeństwa, więc to jedna z najważniejszych aktualizacji roku. Szczegóły i rozwiązywanie problemów znajdziesz w docs/NMI.md w repozytorium.
Gotowy, by mieć własną wysyłkę?
Zaktualizuj już dziś albo zacznij od zera z Dockerem w kilka minut. Jeśli NetSendo Ci pomaga, zostaw ⭐ na GitHubie.



