Un proxy HTTP può trasportare una connessione SMTP se consente un tunnel CONNECT verso la porta del server di posta. Quel permesso conta più del fatto che una pagina web si carichi attraverso lo stesso proxy.

Un invio con SMTP e STARTTLS ha questa forma generale:

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

Gli indirizzi sono segnaposto. Usate un servizio di posta e un mittente per cui siete autorizzati. curl chiede la password quando l'opzione utente contiene solo il nome utente. Il file del messaggio richiede intestazioni di posta adeguate, una riga vuota e un corpo; non è solo l'indirizzo del destinatario.

Aspettatevi connessioni e accessi separati

L'opzione tunnel HTTP fa sì che curl chieda al proxy una connessione verso la destinazione SMTP. Il proxy può richiedere le proprie credenziali tramite le opzioni di autenticazione proxy di curl. Il servizio SMTP autentica poi l'utente di posta all'interno di quella connessione.

--ssl-reqd richiede l'aggiornamento a TLS per questo URL SMTP. Mantenete attiva la verifica dei certificati per il nome host di posta previsto. Un'autenticazione proxy riuscita non dimostra che TLS o l'accesso alla posta riusciranno.

Molti proxy HTTP generici limitano le porte CONNECT. Un rifiuto della porta 587 può essere una politica deliberata. Chiedete una rotta approvata invece di provare ripetutamente porte non correlate o di trattare la restrizione come un guasto.

I servizi di posta possono anche applicare permessi del mittente e criteri di invio una volta che la rotta funziona. Leggete la risposta SMTP. Un messaggio rifiutato dopo l'autenticazione richiede una correzione diversa da un tunnel rifiutato prima che arrivi il saluto SMTP.

Articoli correlati