Enviar correo a través dun proxy HTTP con curl
Comprobe os permisos CONNECT, o TLS de SMTP e as credenciais separadas do proxy e do servizo de correo antes de tentar un envío.
Un proxy HTTP pode transportar unha conexión SMTP se permite un túnel CONNECT ao porto do servidor de correo. Ese permiso importa máis que se unha páxina web se carga a través do mesmo proxy.
Un envío con SMTP e STARTTLS ten esta forma xeral:
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
Os enderezos son marcadores de posición. Use un servizo de correo e un remitente para os que estea autorizado. curl pide o contrasinal cando a opción de usuario só contén o nome de usuario. O ficheiro da mensaxe necesita cabeceiras de correo axeitadas, unha liña en branco e un corpo; non é só o enderezo do destinatario.
Espere conexións e inicios de sesión separados
A opción de túnel HTTP fai que curl pida ao proxy unha conexión co destino SMTP. O proxy pode esixir as súas propias credenciais mediante as opcións de autenticación de proxy de curl. Despois o servizo SMTP autentica o usuario de correo dentro desa conexión.
--ssl-reqd esixe a actualización a TLS para este URL de SMTP. Manteña activada a verificación de certificados para o nome de host de correo previsto. Unha autenticación de proxy correcta non garante que TLS ou o inicio de sesión de correo vaian funcionar.
Moitos proxies HTTP de uso xeral restrinxen os portos CONNECT. Un rexeitamento do porto 587 pode ser unha política deliberada. Solicite unha ruta aprobada en lugar de probar repetidamente portos non relacionados ou tratar a restrición como unha avaría.
Os servizos de correo tamén poden aplicar permisos de remitente e políticas de envío unha vez que a ruta funciona. Lea a resposta SMTP. Unha mensaxe rexeitada despois da autenticación require unha solución distinta dun túnel rexeitado antes de que chegue o saúdo SMTP.