SMTP dla Node.js — poczta z Państwa aplikacji, która dociera
Node.js nie ma wbudowanej funkcji pocztowej; praktycznie każda aplikacja używa do tego Nodemailera. Ta biblioteka ułatwia wysyłkę, ale nic nie mówi o dostarczalności: ta zależy w całości od serwera SMTP, przez który Państwo wysyłają.
Nodemailer pracuje z transportem. Tworzą Państwo transport SMTP z danymi swojego relaya — hostem, portem, szyfrowaniem i loginem — a reszta kodu zostaje bez zmian. To, co dziś wychodzi przez serwer lokalny albo konto testowe, jutro idzie przez 2mail.
Dlaczego bez relaya coś idzie nie tak
Aplikacja w Node.js wysyła pocztę zwykle w momencie, w którym to się liczy: kod weryfikacyjny, reset hasła, potwierdzenie rezerwacji. To wiadomości oczekiwane w ciągu kilku sekund. Gdy wychodzą z serwera bez reputacji, część z nich nie dociera albo dociera za późno — a użytkownik klika „wyślij ponownie”, aż się podda.
Konfiguracja SMTP w Node.js
Pobranie danych
Zaloguj się na swoje konto 2mail i pobierz stamtąd serwer SMTP, nazwę użytkownika oraz hasło.
Wpisanie w Node.js
Prosimy utworzyć w Nodemailerze transport SMTP. Jako host prosimy podać serwer SMTP 2mail, a jako port 587, i wyłączyć opcję secure, aby połączenie zostało podniesione przez STARTTLS. Pod auth prosimy wpisać nazwę użytkownika i hasło swojego loginu 2mail. Prosimy odczytywać te dane ze zmiennych środowiskowych, a nie z kodu. Nodemailer ma metodę verify do sprawdzenia połączenia, zanim wyślą Państwo pierwszą prawdziwą wiadomość — prosimy z niej skorzystać.
Uwierzytelnienie domeny
Zadbaj o poprawne ustawienie SPF, DKIM i DMARC dla swojej domeny, aby odbiorcy mogli zweryfikować, że wiadomość pochodzi od Ciebie.
Test
Wyślij wiadomość testową na adres u dużego dostawcy i sprawdź, czy trafia do skrzynki odbiorczej, a nie do spamu.
Pola, o które prosi Node.js
Każda platforma nazywa je nieco inaczej, ale zawsze chodzi o te same pięć. Konkretne wartości są powiązane z kontem i znajdą je Państwo na swoim koncie 2mail — prosimy je stamtąd przepisać, aby mieć pewność, że są właściwe.
| Pole | Co wpisać |
|---|---|
| Serwer SMTP (host) | Nazwa serwera z Państwa konta 2mail. |
| Port | Port odpowiadający wybranemu szyfrowaniu; Państwa konto pokazuje, który to. |
| Szyfrowanie | TLS. Nigdy nie wysyłają Państwo bez szyfrowania — inaczej dane logowania idą przez sieć otwartym tekstem. |
| Nazwa użytkownika | Login SMTP Państwa konta 2mail. |
| Hasło | Odpowiadające mu hasło. Nigdy nie należy używać hasła do skrzynki pracownika. |
Jakie wiadomości wysyła Node.js
Gdy relay jest już skonfigurowany, wszystkie idą przez 2mail — nie trzeba ich konfigurować pojedynczo.
Pułapki przy Node.js
secure i port muszą do siebie pasować
Opcja secure nie oznacza „bezpiecznie albo niebezpiecznie”, lecz „TLS od pierwszego bajtu”. Na porcie 587 secure powinno być wyłączone — STARTTLS następuje potem. Gdy mimo to je włączą, połączenie wisi albo zostaje od razu zerwane, bez wyraźnego błędu.
Jeden transport, używany wielokrotnie
Prosimy utworzyć transport raz przy starcie i używać go wielokrotnie, zamiast zakładać nowy przy każdej wiadomości. Przy skoku — rundzie przypomnień, kampanii — otworzą Państwo inaczej setki połączeń naraz, co relay może odczytać jako nadużycie. Nodemailer potrafi łączyć połączenia w pulę; prosimy to włączyć przy większych wolumenach.
Prosimy poczekać na wynik i go zalogować
Wysyłka jest asynchroniczna. Kto nie czeka na odpowiedź serwera albo jej nie loguje, nigdy nie zobaczy, że wiadomość została odrzucona. Prosimy logować co najmniej identyfikator wiadomości i ewentualne odrzucenie, a najlepiej podłączyć webhooki 2mail dla dostarczenia i odbicia, aby widzieć też, co psuje się po przekazaniu.
Inna platforma?
SMTP to protokół standardowy: każdy system, który mówi po SMTP — CRM, ERP, własna aplikacja albo serwer — może wysyłać przez 2mail z użyciem tych samych pięciu pól.