NetSendo v2.11.0: wbudowany MTA i kontrola portu 25 oraz PTR
Własny serwer pocztowy wiąże się z kilkoma znanymi problemami. Dostawca hostingu może bez ostrzeżenia blokować wychodzący port 25. Adres IP serwera może nie mieć rekordu odwrotnego DNS (PTR). Rekord SPF może nie zawierać adresu, z którego faktycznie wychodzi poczta. Każdy z tych problemów może sprawić, że wiadomości trafią do spamu albo utkną w kolejce.
NetSendo v2.11.0 rozwiązuje je wszystkie. NetSendo MTA jest teraz standardową usługą w każdej instalacji. Sam sprawdza swoją konfigurację tak, jak widzi ją serwer odbiorcy, i dokładnie wskazuje, co trzeba poprawić.
nmi-mta) jest częścią domyślnego docker-compose.yml i korzysta z opublikowanego obrazu. Przekazuje pocztę w instalacjach GOLD. Nowy panel „Czy ten serwer może wysyłać pocztę” sprawdza wychodzący port 25, rekord PTR i wpis SPF. MTA przedstawia się w HELO nazwą PTR serwera, a kontrola SPF szuka wpisów ip4:/ip6: zamiast include:, który nigdy nie działał.
🚀 Co nowego w v2.11.0
MTA jako standardowa usługa
Przed tym wydaniem kontener MTA uruchamiał się tylko z docker compose --profile nmi. Był budowany na serwerze z plików, których install.sh nigdy nie pobierał. Dostawca był też ukryty, jeśli nie ustawiono NMI_ENABLED=true, a żadna instalacja nie miała tego ustawienia. W praktyce prawie nikt nie mógł z niego korzystać.
Teraz MTA działa jak każda inna usługa NetSendo:
- Jest zdefiniowany w
docker-compose.ymli startuje razem z resztą - Korzysta z opublikowanego obrazu
ghcr.io/netsendo/netsendo:mta-<wersja>, budowanego tym samym workflow co aplikacja - Konfiguracja i wtyczki są w obrazie, więc nic nie jest montowane z katalogu instalacji
- Nie publikuje portów na hoście, więc kilka instalacji na jednym serwerze nie koliduje już na portach 2525/2587
Dostawca NetSendo MTA pojawia się w Ustawienia → Skrzynki, gdy tylko MTA odpowiada. Bez GOLD dostawca ma plakietkę GOLD. MTA niczego nie przekazuje, dopóki instalacja GOLD nie zapisze skrzynki z tym dostawcą, bo przyjmuje tylko sesje logujące się danymi wydanymi przez NetSendo.
⚠️ Ważne:NMI_ENABLEDnie jest już odczytywane. Pliki.envskopiowane ze starszych przykładów zawierająNMI_ENABLED=false, choć nikt świadomie nie wybrał tej wartości. Aby zrezygnować z MTA, użyjNMI_DISABLED=true. Ukrywa to dostawcę i zatrzymuje zaplanowane zadania NMI.
# .env — opcjonalne ustawienia NMI
NMI_DISABLED=true # ukrywa dostawcę i zatrzymuje zadania NMI
NMI_MTA_HOST=nmi-mta # nazwa usługi, przez którą aplikacja łączy się z MTA
NMI_HELO_HOST=mail.example.com # nadpisuje nazwę HELO (opcjonalnie)
NMI_EGRESS_PROBE=false # wyłącza test wychodzący (opcjonalnie)
Aplikacja łączy się z MTA po nazwie usługi nmi-mta. Stara nazwa netsendo-mta działa, dopóki kontener ją nosi.
„Czy ten serwer może wysyłać pocztę?”
Ten test jest dostępny w sekcji NetSendo MTA formularza skrzynki oraz w Ustawienia → Infrastruktura pocztowa. MTA uruchamia go przy starcie i ponownie co kilka godzin. Sprawdza serwer z zewnątrz, tak jak widzi go odbiorca: łączy się z serwerem MX Gmaila na porcie 25, niczego nie wysyła i odczytuje adres, który MX dla niego podaje.
Wychodzący port 25
Pokazuje, czy port 25 jest otwarty, czy zablokowany przez dostawcę. Jeśli jest zablokowany, poczta zostałaby w kolejce, a panel podpowiada, co zrobić.
Publiczny IP i PTR
Pokazuje publiczny adres, jego rekord PTR i to, czy nazwa z PTR wskazuje z powrotem na ten sam adres.
Wpis SPF
Podaje dokładny wpis ip4:… do dodania w rekordzie SPF domeny nadawczej, z przyciskiem kopiowania.
HELO z nazwą PTR serwera
Poczta wysyłana bez dedykowanego IP przedstawiała się w HELO nazwą hosta kontenera, której żaden odbiorca nie mógł rozwiązać. Teraz, jeśli PTR publicznego adresu wskazuje nazwę, która rozwiązuje się z powrotem na ten adres, MTA używa tej nazwy. To tak, jakby podać prawdziwy adres zwrotny zamiast numeru pokoju w budynku. W razie potrzeby nadal możesz to nadpisać przez NMI_HELO_HOST.
Poprawiona kontrola SPF
Kontrola dostarczalności wymagała wcześniej include:_spf.<host instalacji>, czyli rekordu, którego nikt nie publikuje. Teraz szuka publicznego adresu serwera albo dedykowanego IP skrzynki jako wpisu ip4:/ip6:, również w postaci zakresu. Jeśli go brakuje, zobaczysz ostrzeżenie, a wygenerowany rekord go doda:
example.com. TXT "v=spf1 include:_spf.google.com ip4:203.0.113.10 ~all"
💼 Korzyści i przypadki użycia
E-commerce: niezawodna poczta transakcyjna
Przypomnienia o porzuconym koszyku i potwierdzenia zamówień muszą dotrzeć na czas. Gdy port 25, PTR i SPF są sprawdzone przed startem:
- dowiadujesz się o zablokowanym porcie, zanim maile o koszyku utkną w kolejce
- sekwencje posprzedażowe wychodzą ze zgodnymi PTR, HELO i SPF
- nie płacisz za każdy mail zewnętrznemu przekaźnikowi
SaaS: onboarding, który trafia do skrzynki odbiorczej
Maile onboardingowe i przeciwdziałające odejściom klientów działają tylko wtedy, gdy użytkownicy je widzą. Wbudowany MTA utrzymuje całą ścieżkę wysyłki na Twojej infrastrukturze, a regularne testy wychwytują zmiany w DNS lub sieci, zanim wpłyną na dostarczalność.
Agencje: kilka instalacji na jednym hoście
MTA nie publikuje już portów, więc możesz uruchomić osobne instalacje NetSendo dla różnych klientów na jednym serwerze bez konfliktów na portach 2525/2587. Każdy klient zachowuje własne dane i konfigurację.
🛠️ Aktualizacja krok po kroku
-
Pobierz nowy plik compose
Zastąp swój
docker-compose.ymlwersją z v2.11.0. Dodaje ona usługęnmi-mtai wolumenynmi-*. -
Uporządkuj
.envUsuń
NMI_ENABLED. Jeśli w ogóle nie chcesz korzystać z MTA, dodajNMI_DISABLED=true. -
Pobierz obrazy i uruchom ponownie
docker compose pull && docker compose up -dJeśli wcześniej uruchamiałeś MTA z
--profile nmii--build, przestań używać obu flag. Usługa działa teraz z opublikowanego obrazu. -
Sprawdź wynik testu wysyłki
Otwórz Ustawienia → Infrastruktura pocztowa. Zobaczysz stan portu 25, publiczny IP z rekordem PTR i potrzebny wpis SPF.
-
Popraw PTR i SPF
Ustaw PTR w panelu dostawcy hostingu, a potem skopiuj wpis
ip4:do istniejącego rekordu SPF domeny. Nie twórz drugiego rekordu SPF. -
Utwórz skrzynkę (GOLD)
W Ustawienia → Skrzynki wybierz NetSendo MTA i zapisz. MTA zacznie przekazywać pocztę, gdy ta skrzynka zostanie zapisana.
ℹ️ Uwaga: Jeśli zostawisz stary plik compose, instalacja nadal będzie działać. Formularz skrzynki pokaże jedynie, że MTA nie odpowiada.
Częste problemy
- Zablokowany port 25: Wielu dostawców chmurowych domyślnie go blokuje. Nowy przewodnik w
docs/NMI.mdopisuje Google Cloud, AWS, Azure, DigitalOcean, Hetzner, Vultr, Linode, OVHcloud i Contabo. - Dwa rekordy SPF: Domena może mieć tylko jeden. Dodaj wpis
ip4:do rekordu, który już masz. - PTR bez rekordu DNS w przód: Nazwa z PTR musi też mieć rekord A/AAAA wskazujący na ten sam adres IP.
🎯 Wskazówki ekspertów
Uruchom dig -x 203.0.113.10 +short, a potem dig A dla zwróconej nazwy. Oba wyniki powinny się zgadzać i to właśnie sprawdza panel.
Wpisy ip4: nie wliczają się do limitu 10 zapytań DNS w SPF, więc to dobry sposób na autoryzację serwera.
Test powtarza się co kilka godzin i wychwytuje zmiany, na przykład nowy IP albo nową politykę dostawcy. Ustaw NMI_EGRESS_PROBE=false tylko wtedy, gdy Twoja sieć nie pozwala na takie połączenia.
Bez publikowanych portów i z logowaniem tylko danymi wydanymi przez NetSendo MTA nie może działać jako otwarty przekaźnik. Utrzymaj ten stan: nie dodawaj do usługi mapowań portów.
🎉 Podsumowanie
NetSendo v2.11.0 znacznie ułatwia konfigurację wysyłki z własnego serwera. MTA jest w każdej instalacji, działa z przetestowanego obrazu i informuje, czy serwer rzeczywiście może dostarczać pocztę. Poprawne wskazówki SPF i HELO oparte na PTR zwiększają szansę, że Twoje maile trafią do skrzynki odbiorczej, a wszystko działa na infrastrukturze, którą sam kontrolujesz.
Chcesz wysyłać z własnego serwera?
Zaktualizuj do v2.11.0 i uruchom nowy test wysyłki już dziś:
Poznaj inne integracje i ⭐ daj nam gwiazdkę na GitHubie.


