Przejdź do głównej treści

Lista kontrolna pomyślnej wysyłki wiadomości i weryfikacji dostarczania poczty

Do dalszych kontroli będzie wymagane następujące oprogramowanie:

  • Narzędzie host

    • Debian/Ubuntu: apt-get install bind9-host
    • CentOS: yum install bind9-host
  • Narzędzie telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

Rekord MX

Rekord MX to typ rekordu DNS przeznaczony do rejestrowania serwerów pocztowych korzystających z protokołu SMTP. Ten rekord odpowiada za określenie serwera, do którego wiadomość e-mail musi zostać dostarczona przez agenta pocztowego nadawcy. W ramach jednej domeny może istnieć kilka typów rekordów o różnych priorytetach.

Możesz sprawdzić, czy poczta działa lokalnie, czy korzysta z zewnętrznego serwera pocztowego, używając polecenia host:

host -t MX example.com

Podczas pracy z lokalnym serwerem pocztowym zostanie wyświetlony wynik podobny do następującego:

Poczta dla example.com jest obsługiwana przez 10 mail.example.com.

Warto wspomnieć, że wpis mail.example.com może również wskazywać na inny serwer. Dodatkowo należy pamiętać, że mail.example.com musi być istniejącym rekordem A wskazującym na serwer, z którego wysyłasz wiadomości.

Możesz też uruchomić następujące polecenia w celu sprawdzenia:

host example.com
host mail.example.com

Następnie porównaj adresy IP, na które wskazują domena główna, w tym przypadku example.com, oraz mail.example.com.

ważne

Rekord MX musi być skonfigurowany, aby serwery pocztowe mogły odbierać Twoją pocztę e-mail.

Przykład rekordu MX:

Nazwa: example.com.
Typ: MX
Wartość: mail.example.com.
Priorytet: 10

Podpis DKIM

Za pomocą FASTPANEL® podpis DKIM można uzyskać w menu zarządzania → sekcji "Poczta", klikając "DKIM" przy wymaganej domenie pocztowej

Włącz DKIM w FASTPANEL

Po stronie DNS rekord należy dodać w następujący sposób:

Nazwa: dkim._domainkey
Typ: TXT
Wartość: v=DKIM1; k=rsa; p=public_key

Oto przykład poprawnego rekordu DKIM

dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB

Więcej informacji o DKIM można znaleźć pod adresem https://wikipedia.org/wiki/DomainKeys_Identified_Mail

Rekord SPF

Obecność rekordu SPF można sprawdzić, wykonując polecenie host. W tym przypadku polecenie będzie wyglądać następująco:

host -t TXT example.com

Z wynikiem takim jak:

example.com tekst opisowy "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"

Zwróć uwagę, że w tym wpisie może nie być ipv6. W takim przypadku podpis SPF będzie wyglądał następująco:

example.com tekst opisowy "v=spf1 ip4:ipv4_of_your_server a mx ~all"

uwaga

Należy podkreślić, że może istnieć tylko jeden rekord SFP

Po stronie DNS rekord należy dodać w następujący sposób:

Nazwa: example.com.
Typ: TXT
Wartość:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
lub (jeśli ipv6 nie jest używane)
v=spf1 ip4:ipv4_of_your_server a mx ~all

Na przykład:

example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all

Więcej informacji o SPF można znaleźć pod adresem https://wikipedia.org/wiki/Sender_Policy_Framework

Rekord DMARC

W większości przypadków wartość rekordu DMARC będzie taka sama.

Po stronie DNS rekord należy dodać w następujący sposób:

Nazwa: _dmarc
Typ: TXT
Wartość: v=DMARC1; p=none

Na przykład:

_dmarc.example.com. TXT v=DMARC1; p=none

Więcej informacji o DMARC można znaleźć pod adresem https://wikipedia.org/wiki/DMARC

Rekord PTR i nazwa hosta serwera

Rekord PTR to odwrócony rekord DNS, który przekształca adres IP w nazwę. Głównym celem tego rekordu dla serwera pocztowego jest eliminacja większości spamu. Ten rekord umożliwia określenie nazwy hosta, z którego pochodzi wiadomość e-mail. Najczęściej rekord PTR zawiera nazwę domeny używaną na serwerze.

Rekord PTR wiąże adres IP z nazwą hosta. Jeśli rekord PTR nie jest określony poprawnie, Twoje wiadomości będą odrzucane i nie dotrą do adresata.

Hostname powinien być określony jako nazwa rzeczywistej domeny wskazującej na serwer, a PTR powinien wskazywać na domenę, która z kolei wskazuje na serwer.

Na przykład masz na swoim serwerze domenę example.com.

Uruchamiając polecenie:

host example.com

możesz uzyskać wynik:

example.com ma adres 1.2.3.4
Poczta dla example.com jest obsługiwana przez 10 mail.example.com.

Aby uniknąć możliwych problemów, zaleca się ustawienie nazwy hosta i rekordu PTR jako istniejącej subdomeny drugiego poziomu, na przykład mail.example.com

Dostępność portów SMTP

Niektórzy dostawcy hostingu blokują możliwość korzystania z portów używanych do wysyłania lub odbierania poczty. Porty dla usług pocztowych to 25, 587, 465, 143 i 993.

Jednym z najprostszych sposobów sprawdzenia dostępności tych portów jest użycie polecenia telnet.

Aby sprawdzić połączenie przychodzące z serwera zewnętrznego

Uruchom polecenie:

telnet ip_adress port

Na przykład jeśli próbujesz połączyć się przez telnet z portem 25 na 1.2.3.4, polecenie do wykonania to:

telnet 1.2.3.4 25

Jeśli połączenie powiedzie się, zobaczysz wynik podobny do tego:

Próba połączenia z 1.2.3.4...
Połączono z 1.2.3.4.
Znakiem ucieczki jest '^]'.

Jeśli połączenie się nie powiedzie, wynik będzie wyglądał tak:

Łączenie z 1.2.3.4 ...
Nie można otworzyć połączenia z hostem na porcie some_port: połączenie nie powiodło się

Lub:

telnet: Nie można połączyć się ze zdalnym hostem: Przekroczono limit czasu połączenia

Dla połączenia wychodzącego

Na swoim serwerze uruchom polecenie:

telnet smtp.gmail.com 25

Jeśli połączenie powiedzie się, zobaczysz wynik podobny do tego:

Próba połączenia z 2a00:1450:4010:c0b::6c...
Połączono z smtp.gmail.com.
Znakiem ucieczki jest '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp

Pamiętaj, że jeśli używasz hostingu chmurowego i korzystasz z portu 25 dla swojego serwera SMTP, istnieje duże prawdopodobieństwo, że Twój dostawca hostingu domyślnie blokuje połączenia wychodzące na porcie 25. Poniżej znajdziesz linki do instrukcji, jak rozwiązać ten problem:

Oprócz blokowania portów przez dostawcę hostingu musisz sprawdzić, czy porty na Twoim serwerze nie są zamknięte. Jako przykład weźmy iptables, które działa jako zapora sieciowa, używając panelu sterowania FASTPANEL. Polecenie do sprawdzenia, czy istnieje reguła dla określonego portu, w tym przypadku 25, jest następujące:

iptables-save | grep 25

Jeśli nie masz reguły dla portu, który chcesz sprawdzić, nie zostaną zwrócone żadne informacje. Jeśli zobaczysz, że istnieje reguła blokująca port usługi pocztowej, musisz usunąć tę regułę poleceniem:

iptables -D rule chain

Na przykład uruchomiłeś polecenie i znalazłeś następujący wynik:

iptables-save | grep 25

-A INPUT -p tcp -m tcp --dport 25 -j DROP

Ta reguła nie pozwala na żaden dostęp do Twojego serwera przez port 25, co uniemożliwi wysyłanie poczty

Aby usunąć regułę, użyj polecenia:

iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP

Ten przykład polecenia pozwala sprawdzić każdy port używany do wysyłania poczty

Wpływ IPv6 na wysyłanie poczty

Jeśli musisz używać ipv6 dla swoich usług pocztowych, pierwszą rzeczą, którą należy zrobić, jest sprawdzenie, czy istnieje rekord PTR dla ipv6 oraz czy usługi pocztowe nasłuchują na ipv6 na określonych portach.

Możesz wykonać sprawdzenie za pomocą polecenia:

netstat -nltpp | grep tcp6

Wynikiem działania tego polecenia będzie lista wszystkich usług korzystających z ipv6, wśród których możesz już sprawdzić, czy Twoja usługa pocztowa używa tego adresu. Niestety obecnie korzystanie z ipv6 może nie działać poprawnie, nawet jeśli wszystkie ustawienia zostały skonfigurowane prawidłowo.

Jeśli po sprawdzeniu logów usługi pocztowej okaże się, że błąd jest związany z ipv6, a cała konfiguracja jest poprawna, możesz wyłączyć używanie ipv6 dla usługi pocztowej.

Na przykładzie exim4 wyłączenie ipv6 wygląda następująco:

  1. Sprawdź, czy adres ipv6 jest używany przez usługę, za pomocą polecenia

    netstat -nltp | grep exim

    Sprawdź, czy adres ipv6 jest używany przez exim

  2. W pliku konfiguracyjnym /etc/exim4/exim4.conf.template należy dodać następującą linię na samym początku pliku:

    disable_ipv6=true

  3. Zapisz zmiany w pliku, a następnie uruchom ponownie usługę poleceniem takim jak:

    systemctl restart exim4
  4. Wykonaj polecenie:

    netstat -nltp | grep exim

    aby sprawdzić, czy usługi nie ma już na liście

    Sprawdź, czy ipv6 jest wyłączone dla exim

Sprawdź wysyłanie poczty za pomocą usług zewnętrznych

Po sprawdzeniu wszystkich powyższych elementów możesz sprawdzić wysyłanie poczty z serwera przy użyciu zasobów zewnętrznych.

Jedną z najwygodniejszych i najbardziej informacyjnych usług jest https://www.mail-tester.com

Korzystając z niej, możesz sprawdzić bieżącą ocenę swojej poczty, uzyskać informacje o tym, czy powyższy zestaw danych jest poprawny, a także otrzymać zalecenia dotyczące poprawy oceny.

Aby to zrobić, po prostu wyślij wiadomość e-mail na adres podany na stronie, a następnie kliknij "Then check your score".

Przetestuj swoją pocztę za pomocą mail-tester