telnetで遊ぶ::telnetでSMTP

殆どの人は,専用のソフトを使ってメールを送っていると思いますが,もちろんこれもtelnetでできます.

メールを送ってみる

では,メールを送ってみましょう.ただし,SMTPサーバは外部からの接続は制限されている場合が多いので,プロバイダが指定したSMTPサーバにしてください.

telnet mail.~~.ne.jp 25[enter]

コマンドプロンプト上で上のように入力してくみてださい.mail.~~.ne.jpというのが,接続したいサーバで,後の25というのがポート番号です.サーバのコンピュータでは色々なサーバが同時に動いていることが多いのですが,提供するサービスによって番号が決められています.SMTPは普通は25番です.サーバの管理者はポート番号を自由に設定できますが,変な番号にするとアクセスする人が困るので普通は固定です.

220 mail.chichibu.ne.jp ESMTP Postfix
<KBD>MAIL FROM: kawahira@xxxxxxxx.ne.jp</KBD>[enter]
250 Ok
<KBD>RCPT TO: kawahira@xxxxxxxx.ne.jp</KBD>[enter]

250 Ok
<KBD>DATA</KBD>[enter]
354 End data with <CR><LF>.<CR><LF>
<KBD>Subject: test mail</KBD>[enter]
<KBD>To: kawahira kousuke</KBD>[enter]

<KBD>From: kawahira kousuke</KBD>[enter]



<KBD>Hello!</KBD>[enter]<KBD>this mail is wrote by telnet</KBD>[enter]<KBD>.</KBD>[enter]250 Ok: queued as 34AC76E<KBD>QUIT</KBD>[enter]

221 Bye

上のように入力するとメールが送信できるはずです.メールの本文の後に,「.(半角ピリオド)」だけの行を入れると,データの入力から抜けられます.ただし,くれぐれも,例のように私のメールアドレスで実験しないこと!.自分のアドレスで実験してください.

SMTPのコマンド

サーバに接続すると,コマンドを受け付ける状態になります.コマンドを打ち込むと,応答コードとメッセージが返ってきます.

HELO ホスト名

サーバにクライアントのホスト名を知らせます.

MAIL FROM: メールアドレス

メールの送信処理を開始します.パラメータとして,送信者のメールアドレスを指定します.

RCPT TO: メールアドレス

受信者のアドレスを指定します.

DATA

メール本文の入力を開始します.「.(半角ピリオド)」だけの行を入れると,データの入力から抜け,メールを送信します.本文にピリオドだけの行を入れたい場合は,ピリオドを二つ連続させます.良く使う(?)コマンドだけ載せておきます.

RSET

メール送信をリセットして中断します.

VRFY ユーザ名

ユーザに関する情報を問い合わせます.

QUIT

終了して接続を切ります.

NOOP

特に何もしません.応答コードは返ってくるので,サーバが生きているか確認できます.

詳しくはRFCを読んでください.

まとめ

<略>

これで,出かけた先のパソコンが,インターネットに繋がってるのにメールのソフトがインストールされてない!なんて事があっても,大丈夫ですね?(笑)

履歴

Copyright © binzume all rights reserved.