Изпращане на поща през HTTP прокси с curl
Проверете разрешенията за CONNECT, TLS за SMTP и отделните идентификационни данни за прокси и пощенската услуга, преди да опитате изпращане.
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 upgrade за този SMTP URL. Оставете проверката на сертификата включена за предвиденото име на пощенския хост. Успешното удостоверяване на проксито не доказва, че TLS или входът в пощата ще успеят.
Много универсални HTTP проксита ограничават CONNECT портовете. Отказ за порт 587 може да е умишлена политика. Поискайте одобрен маршрут, вместо да опитвате многократно несвързани портове или да приемате ограничението като авария.
Пощенските услуги могат също да налагат разрешения за подателя и правила за изпращане, след като маршрутът работи. Прочетете отговора на SMTP. Съобщение, отхвърлено след удостоверяване, изисква различно решение от тунел, отхвърлен преди пристигането на SMTP поздрава.