HELPER VPS

Wysyłka poczty z VPS: podłączenie usługi SMTP przez porty 587 i 465

Na wszystkich serwerach HELPER VPS wychodzący port 25 jest zamknięty dla ochrony przed spamem, dzięki czemu reputacja IP wszystkich serwerów we wspólnej sieci pozostaje czysta. Jeśli wysyłasz pocztę przez port 587 lub 465 usługi wysyłki, wiadomości lepiej trafiają do skrzynki odbiorczej.

Dlaczego wysyłać przez porty 587 i 465

Port 25 służy do przekazywania poczty między serwerami pocztowymi. Jeśli wysyłasz wiadomości z serwera prosto na serwer pocztowy odbiorcy, sam musisz dbać o reputację IP, odwrotny DNS i wolumen wysyłki, a wiadomości z IP nowego serwera łatwo trafiają do spamu.

Porty 587 i 465 to porty nadawcze, przez które zalogowany użytkownik przekazuje pocztę. Logujesz się do usługi wysyłki poczty loginem i hasłem i przekazujesz jej wiadomości, a jej serwery z zarządzaną reputacją dostarczają je za Ciebie. To najpewniejszy sposób, aby wiadomości o rejestracji, resetowaniu hasła i zamówieniach trafiały do skrzynki odbiorczej.

  • Port 587: połączenie otwiera się bez szyfrowania, a potem szyfrowanie włącza się przez STARTTLS. Ten port domyślnie używa większość usług i programów.
  • Port 465: połączenie od samego początku jest szyfrowane przez TLS. W ustawieniach często oznaczany jest jako SSL lub SSL/TLS.

Jak wybrać usługę wysyłki poczty

Usługi wysyłki poczty są dwóch głównych rodzajów. Pierwszy to usługi poczty transakcyjnej do masowej wysyłki powiadomień ze stron i aplikacji, drugi to funkcja SMTP w poczcie firmowej lub prywatnej, z której już korzystasz. W każdym przypadku, gdy otrzymasz cztery poniższe parametry, możesz przejść do konfiguracji.

  • Adres serwera SMTP: na przykład smtp.example.com
  • Port: 587 (STARTTLS) lub 465 (SSL/TLS)
  • Nazwa użytkownika: login lub adres e-mail nadany przez usługę
  • Hasło: osobne hasło SMTP lub klucz API usługi

Sklepom internetowym i usługom z dużą liczbą wysyłek wygodniejsza jest poczta transakcyjna: prowadzi dziennik wysyłek, obsługuje zwroty i wypisy. Do kilku powiadomień wystarczy też SMTP konta pocztowego.

Sprawdzenie połączenia SMTP z serwera

Przed konfiguracją sprawdź, czy serwer łączy się z usługą wysyłki. Poniższe polecenia tylko sprawdzają połączenie i nie wysyłają wiadomości.

Terminal
nc -vz smtp.example.com 587
openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf -quiet
openssl s_client -connect smtp.example.com:465 -crlf -quiet

Jeśli pierwsza linia pokazuje succeeded lub open, a polecenie openssl wyświetla powitanie serwera zaczynające się od 220, wszystko gotowe. Wyjście przez Ctrl+C. Jeśli nie masz polecenia nc, zainstaluj je: w Ubuntu i Debian apt install -y netcat-openbsd, w AlmaLinux dnf install -y nmap-ncat.

Podłączenie Postfixa do usługi wysyłki

Aby zebrać w jednym miejscu pocztę z programów na serwerze, powiadomień cron i polecenia mail, skonfiguruj Postfix jako przekaźnik przekazujący wiadomości do usługi wysyłki. Cała poczta z serwera będzie wychodzić przez port 587 z logowaniem.

Krok 1. Instalacja

Ubuntu, Debian
apt install -y postfix libsasl2-modules mailutils

Jeśli podczas instalacji pojawi się pytanie o typ konfiguracji poczty, wybierz Internet Site, a jako nazwę poczty podaj swoją domenę. W AlmaLinux 10 zainstaluj poleceniem dnf install -y postfix cyrus-sasl-plain s-nail i włącz poleceniem systemctl enable --now postfix.

Krok 2. Konfiguracja przekazywania

Terminal
postconf -e 'relayhost = [smtp.example.com]:587'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = texthash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_tls_security_level = encrypt'
postconf -e 'inet_interfaces = loopback-only'

inet_interfaces = loopback-only przyjmuje tylko wiadomości wysyłane z samego serwera, więc z zewnątrz nie da się użyć tego serwera jako przekaźnika poczty.

Krok 3. Zapisz dane logowania

Terminal
echo '[smtp.example.com]:587 SMTP_USER:SMTP_PASSWORD' > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
systemctl restart postfix

Jeśli usługa działa przez port 465, zmień port w relayhost i sasl_passwd na 465 i dodaj linię postconf -e 'smtp_tls_wrappermode = yes'.

Krok 4. Wysyłka testowa i sprawdzenie logów

Terminal
echo "VPS mail test" | mail -s "Test from VPS" you@example.com
postqueue -p
journalctl -t postfix/smtp -n 20

Jeśli w logu widać status=sent, usługa wysyłki przyjęła wiadomość. postqueue -p pokazuje wiadomości, które jeszcze nie wyszły. Jeśli poprawiłeś dane logowania, wykonaj systemctl restart postfix, a potem wyślij je ponownie poleceniem postqueue -f.

Konfiguracja SMTP w WordPressie i aplikacjach

Większość stron i aplikacji ma pola konfiguracji SMTP, więc możesz podłączyć je prosto do usługi wysyłki, bez Postfixa na serwerze. W WordPressie zainstaluj wtyczkę SMTP i podaj poniższe wartości, a wiadomości o rejestracji i resetowaniu hasła będą wychodzić przez tę usługę.

  • Host SMTP: adres usługi wysyłki
  • Szyfrowanie: TLS (STARTTLS) dla portu 587, SSL dla portu 465
  • Port: 587 lub 465
  • Uwierzytelnianie: włączone, podaj nazwę użytkownika i hasło
  • Adres nadawcy: adres w Twojej domenie (na przykład no-reply@example.com)

Aplikacje w Node.js, PHP i Python konfigurujesz tymi samymi wartościami w bibliotece pocztowej. Nie wpisuj hasła bezpośrednio w kodzie, tylko trzymaj je w zmiennej środowiskowej lub pliku konfiguracyjnym. Instalację WordPressa opisuje poradnik instalacji WordPressa.

Rekordy SPF, DKIM i DMARC w DNS domeny

Serwer pocztowy odbiorcy sprawdza w rekordach DNS, czy wiadomość naprawdę przyszła z miejsca dozwolonego przez Twoją domenę. Jeśli dodasz trzy rekordy, wiadomości znacznie częściej trafią do skrzynki odbiorczej.

  • SPF: lista serwerów, które mogą wysyłać pocztę z Twojej domeny. Dodaj wartość include podaną przez usługę wysyłki do jednego rekordu TXT.
  • DKIM: podpis elektroniczny wiadomości. Dodaj rekord TXT lub CNAME utworzony przez usługę wysyłki bez zmian.
  • DMARC: określa, co robić z wiadomościami, które nie przeszły weryfikacji SPF i DKIM. Na początek użyj ustawienia, które tylko wysyła raporty, jak poniżej.
DNS TXT
_dmarc.example.com  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

Gdy przez kilka tygodni raporty pokażą, że wszystkie wiadomości przechodzą weryfikację, podnieś politykę do p=quarantine, a potem do p=reject, aby chronić domenę przed podszywaniem się.

Odbieranie poczty i kolejne kroki

Aby odbierać pocztę w swojej domenie, dodaj do domeny rekordy MX usługi hostingu poczty. Jeśli pocztę przychodzącą obsługuje hosting poczty, a wychodzące powiadomienia usługa wysyłki, serwer może zajmować się tylko stronami i aplikacjami.

Wysyłka przez usługę działa dalej także przy przenosinach lub tworzeniu nowego serwera: wystarczy przenieść kilka linii ustawień. Nawet gdy IP serwera się zmienia, reputacja wysyłki zostaje po stronie usługi, więc dostarczalność nie spada także przy przenosinach strony do innego regionu.

Inne porty otwieraj swobodnie według potrzeb swojej usługi. Jak otworzyć tylko potrzebne porty, opisuje poradnik podstawowej zapory, a zasady korzystania z serwerów zasady dopuszczalnego użytkowania.

Przydatne poradniki na ten temat

Ustawienia, które warto zrobić po tym poradniku.

Wszystkie poradniki