14

アプリケーションでCurl.exeを使用してメールを送信しています。ほとんどの主要な電子メールサーバーをサポートする必要があります。Gmailは、次のポートと認証方法を公開しています。

  • TLS / STARTTLS(明示的TLSと呼ばれることもあります):ポート587を使用します
  • SSL(Implicit TLSと呼ばれることもあります):ポート465を使用します

次のコマンドラインを使用して、明示的な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

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

SSL / Implicit TLSを機能させるための適切なコマンドラインパラメータは何ですか?

4

3 に答える 3

16

SMTPSに使用smtps://します(つまり、既存のSSL / TLS接続の上にSMTPを追加します)。

これは機能します:

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

また、明示的なSTARTTLS接続を使用--ssl-reqdして、SSL / TLSが使用されると予想されるときに確実に使用されるようにします(そうでない場合、ダウングレード攻撃が発生する可能性があります)。

どちらも使用しない-kでください。サーバー証明書を確認してください。http://curl.haxx.se/docs/sslcerts.htmlを参照してください。

于 2012-05-09T20:22:05.150 に答える
12

さて私はちょうど以下を試しました、そしてそれはうまくいきます:

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

それが役に立てば幸い!

于 2012-09-14T12:57:59.750 に答える
2

あなたはこれを試すことができます。

curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "sender@gmail.com" --mail-rcpt "recepient@gmail.com" --upload-file /var/scripts/mail.txt --user "sender@gmail.com:senderGmailPassword"
于 2015-06-29T03:37:25.363 に答える