5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

opensslでGMailのSMTPからメールを送る

Posted at

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
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?