Wysyłanie poczty przez proxy HTTP za pomocą curl
Przed próbą wysyłki sprawdź uprawnienia CONNECT, TLS SMTP oraz oddzielne dane logowania proxy i usługi pocztowej.
Proxy HTTP może przenosić połączenie SMTP, jeśli zezwala na tunel CONNECT do portu serwera pocztowego. To uprawnienie ma większe znaczenie niż to, czy strona internetowa wczytuje się przez to samo proxy.
Wysyłka przez SMTP z STARTTLS ma ogólnie taki kształt:
curl --proxy http://203.0.113.10:8080 --proxytunnel \
--url smtp://mail.example.com:587 --ssl-reqd \
--user mail-user \
--mail-from [email protected] \
--mail-rcpt [email protected] \
--upload-file message.eml
Adresy są przykładami. Użyj usługi pocztowej i nadawcy, do których masz uprawnienia. curl pyta o hasło, gdy opcja użytkownika zawiera tylko nazwę użytkownika. Plik wiadomości wymaga odpowiednich nagłówków poczty, pustej linii i treści; to nie jest tylko adres odbiorcy.
Spodziewaj się osobnych połączeń i logowań
Opcja tunelu HTTP powoduje, że curl prosi proxy o połączenie z miejscem docelowym SMTP. Proxy może wymagać własnych danych logowania przez opcje uwierzytelniania proxy w curl. Następnie usługa SMTP uwierzytelnia użytkownika poczty w tym połączeniu.
--ssl-reqd wymaga aktualizacji do TLS dla tego adresu SMTP. Pozostaw włączoną weryfikację certyfikatów dla zamierzonej nazwy hosta poczty. Udane uwierzytelnienie proxy nie dowodzi, że TLS lub logowanie do poczty się powiodą.
Wiele ogólnych proxy HTTP ogranicza porty CONNECT. Odrzucenie portu 587 może być zamierzoną polityką. Poproś o zatwierdzoną trasę, zamiast wielokrotnie próbować niepowiązanych portów lub traktować ograniczenie jako awarię.
Usługi pocztowe mogą też egzekwować uprawnienia nadawcy i zasady wysyłki, gdy trasa działa. Przeczytaj odpowiedź SMTP. Wiadomość odrzucona po uwierzytelnieniu wymaga innego rozwiązania niż tunel odrzucony przed nadejściem powitania SMTP.