什么是Curl SMTP命令行参数以支持GMail TLS/STARTTLS与SSL

Kev*_*ood 13 email ssl command-line curl smtp

我在应用程序中使用Curl.exe来发送电子邮件.我需要支持大多数主要的电子邮件服务器 GMail公开以下端口和身份验证方法.

  • TLS/STARTTLS(有时称为Explicit TLS):使用端口587
  • SSL(有时称为隐式TLS):使用端口465

我已使用以下命令行使用Explicit TLS:

C:\>curl smtp://smtp.gmail.com:587 -v --mail-from "my.mail@gmail.com" --mail-rcpt 
"your.mail@x.com" --ssl -u my.mail@gmail.com:password -T "c:\test.txt" -k --anyauth
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容以使ImplicitTLS工作,但事实并非如此.

C:\>curl smtp://smtp.gmail.com:465 -v --mail-from "my.mail@gmail.com" --mail-rcpt 
"your.mail@x.com" --ssl -u my.mail@gmail.com:password -T "c:\test.txt" -k --anyauth
Run Code Online (Sandbox Code Playgroud)

什么是使SSL /隐式TLS起作用的正确命令行参数?

Kar*_*eng 13

好吧,我只是尝试了以下,它工作正常:

curl smtps://smtp.gmail.com:465 -v --mail-from "xxx@gmail.com" --mail-rcpt "yyy@gmail.com" --ssl -u xxx@gmail.com:password -T "test.txt" -k --anyauth
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!


Bru*_*uno 12

使用smtps://了SMTPS(即在现有的SSL/TLS连接的顶部SMTP).

这有效:

curl smtps://smtp.gmail.com:465 -v
Run Code Online (Sandbox Code Playgroud)

我还将使用--ssl-reqd显式STARTTLS连接来确保在您预期的情况下使用SSL/TLS(否则可能会降级攻击).

不要使用它们-k,请检查服务器证书:请参阅http://curl.haxx.se/docs/sslcerts.html