telnetでSMTP認証のテスト

2019年9月30日

telnetを用いてlinuxのコマンドラインからSMTP認証(Plain認証)をテストする方法です

まず、SMTP認証で送信する認証情報を作成します。
SMTP認証で送信する文字列は、「メールアドレス\0メールアドレス\0パスワード」をbase64で符号化したものです。
メールアドレスをtest@example.jp、パスワードをhoge とします。
以下のようにコマンドを入力してください。(要openssl、先頭の$はコマンドプロンプト)

$ printf "%s\0%s\0%s" test@example.jp test@example.jp hoge | openssl base64 -e | tr -d '\n'; echo
dGVzdEBleGFtcGxlLmpwAHRlc3RAZXhhbXBsZS5qcABob2dl

出力された「dGVzdEBleGFtcGxlLmpwAHRlc3RAZXhhbXBsZS5qcABob2dl」を利用します。

telnetでテストします。メールサーバは、mail.example.jp、宛先は、joe@example.com とします。

$ telnet mail.example.jp 587
Trying mail.example.jp...
Connected to mail.example.jp.
Escape character is '^]'.
220 mail.example.jp ESMTP
helo mailtest
250 mail.example.jp
AUTH PLAIN dGVzdEBleGFtcGxlLmpwAHRlc3RAZXhhbXBsZS5qcABob2dl
235 go ahead
mail from: test@example.jp
250 ok
rcpt to: joe@example.com
250 ok
quit
221 mail.example.jp
Connection closed by foreign host.

AUTH PLAINコマンドの応答が、235 go aheadとなっており、無事に認証されました。
また、rcpt toコマンドの応答が、250 okとなっており、送信が許可されていることがわかります。