2012-05-09 13 views
11

Sto utilizzando Curl.exe in un'applicazione per inviare e-mail. Devo supportare la maggior parte dei principali server di posta elettronica. GMail espone le seguenti porte e metodi di autenticazione.Quali sono gli argomenti della riga di comando SMTP Curl per supportare GMail TLS/STARTTLS vs SSL

  • TLS/STARTTLS (a volte chiamato Explicit TLS): utilizza la porta 587
  • SSL (talvolta chiamato implicito TLS): utilizza la porta 465

ho ottenuto l'esplicita TLS a lavorare utilizzando il seguente riga di comando:

C:\>curl smtp://smtp.gmail.com:587 -v --mail-from "[email protected]" --mail-rcpt 
"[email protected]" --ssl -u [email protected]:password -T "c:\test.txt" -k --anyauth 

ho provato quanto segue per ottenere ImplicitTLS al lavoro, ma non è.

C:\>curl smtp://smtp.gmail.com:465 -v --mail-from "[email protected]" --mail-rcpt 
"[email protected]" --ssl -u [email protected]:password -T "c:\test.txt" -k --anyauth 

Quali sono i parametri corretti della riga di comando per ottenere SSL/TLS implicito al lavoro?

+0

Hai scambiato esplicita/implicita: quando si dice * inizio * SSL/TLS, ti dico esplicitamente per iniziare. Nota che entrambi possono usare SSL o TLS in generale. (Ho scritto una [risposta lunga su SF] (http://serverfault.com/a/368574/47187) a riguardo.) – Bruno

+0

Grazie per l'avviso. Ho scambiato le descrizioni esplicite e implicite. –

+0

Hai provato a usare 'smtps: // ...'? – Bruno

risposta

9

Utilizzare smtps:// per SMTPS (ad esempio SMTP su una connessione SSL/TLS esistente).

Questo funziona:

curl smtps://smtp.gmail.com:465 -v 

Vorrei anche usare --ssl-reqd per la connessione STARTTLS esplicito per assicurarsi che SSL/TLS viene utilizzato quando si aspetta che sia (attacchi di downgrade sarebbe possibile altrimenti).

Non utilizzare -k né, controllare il certificato del server: si veda http://curl.haxx.se/docs/sslcerts.html

Problemi correlati