HTTP-прокси может передавать соединение SMTP, если он разрешает туннель CONNECT к порту почтового сервера. Это разрешение важнее того, загружается ли веб-страница через тот же прокси.

Отправка через SMTP с STARTTLS имеет такой общий вид:

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

Адреса — это заполнители. Используйте почтовую службу и отправителя, на которые у вас есть разрешение. curl запрашивает пароль, когда в параметре пользователя указано только имя пользователя. Файлу сообщения нужны подходящие почтовые заголовки, пустая строка и тело; это не только адрес получателя.

Ожидайте отдельных соединений и входов

Параметр туннеля HTTP заставляет curl запросить у прокси соединение с пунктом назначения SMTP. Прокси может потребовать собственные учётные данные через параметры аутентификации прокси в curl. Затем служба SMTP аутентифицирует почтового пользователя внутри этого соединения.

--ssl-reqd требует обновления до TLS для этого URL SMTP. Оставляйте проверку сертификатов включённой для нужного имени почтового хоста. Успешная аутентификация на прокси не доказывает, что TLS или вход в почту пройдут успешно.

Многие универсальные HTTP-прокси ограничивают порты CONNECT. Отказ для порта 587 может быть намеренной политикой. Запросите одобренный маршрут вместо того, чтобы снова и снова пробовать посторонние порты или считать ограничение сбоем.

Почтовые службы могут также применять права отправителя и правила отправки после того, как маршрут заработает. Читайте ответ SMTP. Письмо, отклонённое после аутентификации, требует иного решения, чем туннель, отклонённый до прихода приветствия SMTP.

Похожие статьи