opensslを使ってGmailからメールを送ってみる

  • 2023年7月21日
  • 2023年7月21日
  • Tips

smtp.gmail.comを使って外部ドメインの人にメールを送る必要があり、調べてみました。

手順としては、

  1. アプリパスワードの入手
  2. opensslからのメール送信

となります。


アプリパスワードの入手

メール送信時に使うパスワードを入手します。

  1. 自分のGmailアカウントでGmailなどにログインする
  2. 右上の自分の名前が表示された丸いアイコンをクリック → 『Googleアカウントを管理』をクリック
  3. 画面左上の『Googleアカウント』という文字列右側の入力フィールドに『アプリパスワード』と入力し、アプリパスワード作成画面を開く
  4. アプリ名やデバイス名は適当にわかりやすい物を入力するか、『メール』/『Windowsパソコン』などを選んでおく
  5. 『生成』ボタンを押すと16桁のアプリパスワードが表示されるので、コピペしておく(一度しか表示されないので注意!)

opensslからのメール送信

WSL2なUbuntuからメールを送信してみました。

# 自分のメールアドレスをbase64化する
echo -ne 'foo@gmail.com' | base64
Zm9vQGdtYWlsLmNvbQ==

# アプリパスワードをbase64化する
echo -ne 'myapplipassword' | base64
bXlhcHBsaXBhc3N3b3Jk

# openssl で smtp.gmail.com に接続する
openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof

# こんにちわをする
EHLO smtp.gmail.com

# ログイン開始宣言
AUTH LOGIN

# base64化した自分のメアドを流し込む
Zm9vQGdtYWlsLmNvbQ==

# base64化したアプリパスワードを流し込む
bXlhcHBsaXBhc3N3b3Jk

# 送信元を指定
MAIL FROM: <foo@gmail.com>

# 宛先を指定
RCPT TO: <recepter@example.com>

# 本文を流し込む
DATA
from:foo@gmail.com
to:recepter@example.com
Subject:testmail
this is a test mail from smtp.gmail.com
.

# 終了
quit

以上です。