opensslでGMailのSMTPからメールを送ってみました。
ツッコミがあればコメントしてください!!
前提
username:mail@gmail.com
password:passw0rd
AUTH認証で必要なユーザー名とパスワードをエンコードしたものを準備
AUTH認証ではユーザー名とパスワードをbase64エンコードした文字列を使用するので
printf "%s\0%s\0%s" mail@gmail.com mail@gmail.com passw0rd | openssl base64 -e | tr -d '\n'; echo
###エンコードされたもの###
開始
openssl
SMTP接続をする
OpenSSL> s_client -starttls smtp -connect smtp.gmail.com:587 -crlf
#私の環境では「-crlf」がないとメールの送信ができませんでした。
------出力される------
CONNECTED(00000003)
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = Google Internet Authority G3
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = smtp.gmail.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
i:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
1 s:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
---
Server certificate
-----BEGIN CERTIFICATE-----
(略)
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=US/O=Google Trust Services/CN=Google Internet Authority G3
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3239 bytes and written 469 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
(略)
Start Time: 1523963887
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
250 SMTPUTF8
------//出力される------
オプションについて
option | |
---|---|
-starttls protocol | TLSで通信する |
-connect host:port | 接続先のホスト名とポートの指定 |
-crlf | 改行をCRLFにしてくれる |
SMTP-AUTHの認証
「###エンコードされたもの###」には始めに作成したユーザー名とパスワードをbase64エンコードした文字列を入力します
EHLO localhost <-入力
------出力される------
250-smtp.gmail.com at your service, [210.131.144.59]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
------//出力される------
AUTH PLAIN <-入力
334
###エンコードされたもの### <-入力
35 2.7.0 Accepted
メールを作成・送信する
MAIL FROM:<mail@gmail.com> <-入力
250 2.1.0 OK l11sm5386602pgq.83 - gsmtp
rcpt to:<to@gmail.com> <-入力
250 2.1.5 OK l11sm5386602pgq.83 - gsmtp
DATA <-入力
from:mail@gmail.com <-入力
to:to@gmail.com <-入力
Subject:test <-入力(件名)
<-入力
test mail <-入力(本文)
. <-入力(本文終了「.のみ」)
250 2.0.0 OK 1524138250 l11sm5386602pgq.83 - gsmtp
QUIT