telnet による SMTP サーバへのアクセス

前回の投稿では telnet による pop3 サーバへのアクセスを書きました。これでメーラがない環境でもメールを読み出すことは可能になりました。
今度は、telnet でメールを送信する方法です。

やりかたは、コマンドラインから

> telnet smtp.example.jp 25
として、直接25番ポートを叩きます。

Trying xxx.xxx.xxx.xxx...
Connected to smtp.example.jp
Escape character is '^]'.
220 smtp.example.jp ESMTP Postfix

と返答がかえってきたら

HELO smtp.example.jp ←入力
250 Ok ←返答

して、あとは

MAIL FROM: user@example.jp ←入力
250 Ok ←返答

RCPT TO: hoge@example.jp ←入力
250 Ok ←返答
DATA ←入力
354 End data with .
To: user@example.jp ←入力
From: user@example.jp ←入力
hello! ←入力
. ←入力

250 Ok ←返 queued as xxxxxxxx ←返答
で送信完了。

quit ←入力
221 Bye ←返答

で、おしまいです。
最近のメールサーバではリレー許可がされていない場合が多いと思いますので
RCPT TO: user@example.com
554 : Relay access denied
と、なる場合があるかもしれません。

まあ、telnet でメール送信というと、普通はサーバのテストとか以外には使わないとおもいますので、逆にきちんとリレー拒否ができているかの確認は重要だと思います。
踏み台にされるといろいろ問題ですから。

また、最近のネットワークの設定では25番を閉じている場合が多いので、そういうときは587番を指定して telnet してみてください。