2012-05-09 7 views
11

Używam Curl.exe w aplikacji do wysyłania wiadomości e-mail. Muszę obsługiwać większość głównych serwerów pocztowych. GMail udostępnia następujące porty i metody uwierzytelniania.Co to są argumenty wiersza polecenia Curl SMTP do obsługi GMail TLS/STARTTLS vs SSL

  • TLS/STARTTLS (czasami nazywane Explicit TLS): wykorzystuje port 587
  • SSL (czasami nazywane niejawny TLS): wykorzystuje port 465

Dostałem wyraźnej TLS, aby pracować przy użyciu następujących linia komend:

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 

Próbowałem, aby uzyskać ImplicitTLS do pracy, ale tak nie jest.

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 

Jakie są prawidłowe parametry wiersza polecenia, aby uzyskać obsługę SSL/Implicit TLS?

+0

pan zamienione jawne/niejawne: Kiedy mówisz * Start * SSL/TLS, należy poinformować go wyraźnie, aby rozpocząć. Zauważ, że oba mogą ogólnie używać SSL lub TLS. (Napisałem [długą odpowiedź na SF] (http://serverfault.com/a/368574/47187) na ten temat.) – Bruno

+0

Dzięki za heads up. Wymieniłem wyraźne i ukryte opisy. –

+0

Czy próbowałeś użyć 'smtps: // ...'? – Bruno

Odpowiedz

9

Użyj smtps:// dla SMTPS (tj. SMTP na istniejącym połączeniu SSL/TLS).

to działa:

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

Chciałbym również skorzystać --ssl-reqd do wyraźnego związku STARTTLS aby upewnić SSL/TLS jest używany, gdy można oczekiwać, że będzie (ataki obniżenia wersji byłoby możliwe w inny sposób).

Nie używaj -k albo sprawdzić certyfikat serwera: patrz http://curl.haxx.se/docs/sslcerts.html