AWS i wysyłanie poczty przez SMTP
Jeżeli będziecie próbowali podłączyć się z maszyny EC2 lub funckji Lambda do serwera SMTP działającego na porcie 25 to… Nie uda się to. Przynajmniej nie od razu.
Już piszę dlaczego i jak sobie z tym poradzić.
AWS i wysyłanie poczty przez SMTP
Na potrzeby tego artykułu skorzystałem z usługi mailtrap.io, która umożliwia między innymi testowanie połączeń do serwerów SMTP. Dostałem od razu konfigurację serwera, do którego próbowałem się podłączyć.
Do testów uruchomiłem maszynę wirtualną z systemem Amazon Linux i zainstalowałem klienta telnet sudo yum -y install telnet
.
Na początku spróbowałem podłączyć się do serwera SMTP na port 2525 telnet smtp.mailtrap.io 2525
Nie było najmniejszego problemu. Połaczenie nastapiło praktycznie natychmiast.
W drugim kroku, spróbowałem podłączyć się jednak na port 25 telnet smtp.mailtrap.io 25
I tu niestety nie było tak różowo. Nie udało się uzyskać połączenia.
Pierwsze co przychodzi do głowy to kontrola security grupy podpietej do maszyny. Ruch wychodzący domyślnie jest otwarty. Ale sprawdźmy.
I rzeczywiście tak jest. Cały ruch do internetu jest otwarty.
W czym więc tkwi problem? W tym, że AWS domylnie blokuje ruch wychodzący na port 25 z maszyn EC2 oraz funkcji Lambda. Musimy poprosić o zdjęcie tego ograniczenia. Procedura opisana jest tutaj.
Co istotne, procedurę dopuszenia ruchu trzeba przejść osobno dla każdego regionu.