OpenSSLを使用して電子メールを送信する

OpenSSLを使用して電子メールを送信する

openSUSEの下のOpenSSLモジュールを使用すると、このコマンドのリストを使用して電子メールを送信できます。

openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf
helo
auth login
(Put base64 encoded username)
(Put base64 encoded password)
mail from:<email>
rcpt to:<email>
Data
From: email
To: email1, email2, .....
Subject: 
(Message body goes here)
.

これらの一連のコマンドを一度に実行できますか?台本のように?

注:OpenSSLモジュールを含む組み込みLinuxシステムがあり、ここでも同じことが当てはまります。

答え1

試してみましたか?

openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf  <<EOF
helo
auth login
$(echo -n $username | base64)
$(echo -n $password | base64)
mail from:$email0
rcpt to:$email0
Data
From: $email0
To: $emaildest
Subject: $(echo $subject)

$(< body.txt)
.
EOF
  • メッセージ本文を挿入する必要がありますbody.txt(そして後で削除する必要があります)。
  • すべて設定する必要があります$var...

しかし、メッセージに署名して暗号化している場合は確認してください。この問題

答え2

3bdalla:SSL接続が確立されているがアプリケーション層データが送信されず、証明書のみが表示されたときに同様の問題を解決する必要がありました。 opensslコマンドラインに次のパラメータを追加してみてください。-key, keyfile, -cert and certfileパラメータの後ろ:<port>

openssl s_client -connect <host>:<port> -key <keyfile> -cert <certfile>

(最初にコマンドを試しましたecho "some_data" | openssl s_client -connect <host>:<port> -key <keyfile> -cert <certfile>:)

関連情報