E-mail versturen via een HTTP-proxy met curl
Controleer CONNECT-rechten, SMTP-TLS en de afzonderlijke inloggegevens van de proxy en de maildienst voordat u een verzending probeert.
Een HTTP-proxy kan een SMTP-verbinding doorgeven als hij een CONNECT-tunnel naar de poort van de mailserver toestaat. Die toestemming is belangrijker dan of een webpagina via dezelfde proxy laadt.
Een verzending met SMTP en STARTTLS heeft deze algemene vorm:
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
De adressen zijn plaatsaanduidingen. Gebruik een maildienst en afzender waarvoor u bevoegd bent. curl vraagt om het wachtwoord wanneer de gebruikersoptie alleen de gebruikersnaam bevat. Het berichtbestand heeft passende mailheaders, een lege regel en een body nodig; het is niet alleen het adres van de ontvanger.
Verwacht gescheiden verbindingen en aanmeldingen
De HTTP-tunneloptie laat curl de proxy om een verbinding met de SMTP-bestemming vragen. De proxy kan eigen inloggegevens vereisen via curls opties voor proxyauthenticatie. Daarna authenticeert de SMTP-dienst de mailgebruiker binnen die verbinding.
--ssl-reqd vereist de TLS-upgrade voor deze SMTP-URL. Houd certificaatverificatie ingeschakeld voor de bedoelde mailhostnaam. Een geslaagde proxyauthenticatie bewijst niet dat TLS of de mailaanmelding zal slagen.
Veel algemene HTTP-proxy's beperken CONNECT-poorten. Een weigering van poort 587 kan een bewust beleid zijn. Vraag een goedgekeurde route aan in plaats van herhaaldelijk niet-verwante poorten te proberen of de beperking als storing te behandelen.
Maildiensten kunnen ook afzenderrechten en verzendregels afdwingen zodra de route werkt. Lees het SMTP-antwoord. Een bericht dat na authenticatie wordt geweigerd, vereist een andere oplossing dan een tunnel die wordt geweigerd voordat de SMTP-groet aankomt.