PR

SMTPS AUTH(TCP 465)をコマンドベースで動作確認する方法

メール送信設定でよく使われる SMTPS AUTH(TCP 465)ですが、アプリやメールクライアントの設定だけでは、

  • ネットワーク的に接続できているのか
  • 認証情報が正しいのか
  • SSL/TLSでの通信が成立しているのか

といった切り分けが難しいことがあります。

本記事では、openssl コマンドを使って SMPTS AUTH(TCP 465)を直接確認する方法を、
初心者の方にもわかるように 手順付き・実行例付きで解説します。

スポンサーリンク

SMTPS AUTH(TCP 465)とは

SMTPS AUTH とは、SSL/TLS で暗号化された SMTP 通信上で ユーザー認証(AUTH)を行う仕組みです。

項目内容
プロトコルSMTP over SSL/TLS
ポート番号TCP 465
暗号化接続開始時からSSL/TLS
認証SMTP AUTH(LOGIN / PLAIN など)

※ TCP 587(STARTTLS)との違いで混乱しやすいため、465は「最初から暗号化される」点を押さえておきましょう。

コマンドで動作確認するメリット

GUIやアプリ設定だけに頼らず、コマンドで確認するメリットは以下の通りです。

  • ネットワーク疎通(FW・NW)の切り分けができる
  • SSL証明書エラーの有無を直接確認できる
  • SMTP AUTH が通るかを明確に判断できる
  • アプリ側の問題か、SMTPサーバ側の問題かを切り分け可能

運用・障害対応では非常に重要な確認方法です。

事前に確認しておくポイント

事前に以下を把握しておきましょう。

  • SMTPサーバのホスト名(例:smtp.example.com)
  • ポート番号:465
  • 認証ユーザー名
  • 認証パスワード

openssl を使った SMTPS(465)接続確認

基本コマンドは以下になります。

# openssl s_client -connect mail.dassyi.com:465

確認ポイント

  • CONNECTED と表示される
  • 220 のSMTP応答が返る
  • TLSのバージョンが表示される

ここまで表示されれば、TCP 465 + SSL/TLS 接続は正常です。

SMTP AUTH(認証)の確認手順

接続後、以下を入力します。

EHLO コマンド

EHLO hogehoge.dassyi.com

応答例AUTH LOGIN や AUTH PLAIN が表示されていれば、
SMTP AUTH が有効であることが分かります。

AUTH LOGIN での認証確認

AUTH LOGIN
a2xxxxxxxxxxxxMQ==
Uzxxxxxxxxxxxxxx1

235 Authentication successfulが出ればOK

ここで、AUTH LOGINの後の文字列は、base64でエンコードされたユーザ名で、

$ echo -n “ユーザ名” | base64
a2xxxxxxxxxxxxMQ==

のコマンドで確認ができます。その次の文字列は、base64でエンコードされたパスワードで、

$ echo -n “パスワード” | base64
Uzxxxxxxxxxxxxxx1

のコマンドで確認ができます。これらは事前に準備してメモしておきましょう。

その後は、次のように入力して、実際にメールが届くか確認をします。

mail from: user@dassyi.com
250 2.1.0 Ok
rcpt to: hogehoge@gmail.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from: user@dassyi.com
to: hogehoge@gmail.com
subject: test mail from mailserver

test mail from mailserver.
.

QUIT

実行結果の見方とよくあるエラー

よくあるエラー例

エラー原因
Connection refusedポート閉塞、FW設定
handshake failureTLSバージョン不一致
535 Authentication failedユーザー名/パスワード誤り

トラブルシューティング例

アプリでは送信できないがコマンドは成功
→ アプリ設定ミスの可能性が高い

openssl で接続できない
→ ネットワーク/FW/ポート465を確認

AUTH が表示されない
→ SMTP AUTH 無効 or EHLO 未実行

メール送信のトラブル時は、まずコマンドで SMTP サーバの状態を確認することで、切り分けができるようになります。ぜひ覚えておいてください。

今回はここまでです。最後までお読み頂きありがとうございました。